Ответы пользователя по тегу C++
  • Как передать ссылку на переменную в функцию в Си (без плюсов)?

    unclechu
    @unclechu Автор вопроса
    #include <stdio.h>
    
    void square(int x, int *result) {
        *result = x * x;
    }
    
    int main() {
        int a = 5;
        printf("before: %d\n", a); // 5
        square(10, &a);
        printf("after: %d\n", a); // 100
        return 0;
    }
    Ответ написан
    Комментировать
  • Как работать с асихнронным кодом в C++ модуле для Node.JS?

    unclechu
    @unclechu Автор вопроса
    Решилось, правда не совсем так как хотелось. Теперь вызов коллбека асинхронен, но мне нужно получить результат внутри «process», хотябы просто дождаться завершения «after».
    uv_work_t *baton;
    
    void work(uv_work_t* task) {}
    
    void after(uv_work_t* task, int status) {
        HandleScope scope;
    
        int n = *((int*)(&task->data));
        const unsigned argc = 1;
        Local<Value> argv[argc] = { Local<Value>::New( Number::New(n) ) };
        processCallback->Call(Context::GetCurrent()->Global(), argc, argv);
    
        scope.Close(Undefined());
        delete task;
    }
    
    int process()
    {
        baton = new uv_work_t();
        baton->data = (void*)123;
        uv_queue_work(uv_default_loop(), baton, work, after);
        return 0;
    }
    Ответ написан
    Комментировать