передача нескольких аргументов функции обратного вызова в g_thread_pool_new / g_thread_pool_push - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть ситуация, когда я создаю пул потоков, и каждый раз, когда создается поток, функция будет вызываться из него.

Это сигнатура функции: callback_function (int a, int b, int c);

pool = g_thread_pool_new(callback_function, &user_data, -1, NULL);
g_thread_pool_push(pool, &parameter, NULL);

Теперь я могу иметь структуру, которая содержит 3 int и передавать их из g_thread_pool_push, и будет "user_data", которая также будет передана функции, которая потребует изменения сигнатуры функции.

Есть ли способ выполнить обратный вызов с несколькими параметрами без изменения сигнатуры функции? Все параметры, передаваемые в функцию, являются локальными для потока.

...