Используя pThreads, возможно ли написать функцию, которая может определять, из какого потока она вызывается? - PullRequest
1 голос
/ 04 февраля 2010

Это случай использования:

Log(char* s); // prints out a log message

Сейчас:

Log("hello world\n"); // called from Thread1

Желаемый вывод:

Thread1: hello world

Сейчас:

Log("hello world\n"); // called from Thread2

Желаемый вывод:

Thread2: hello world

У меня может быть карта, которая отображает потоки потоков в строки.Однако мне нужна функция, которая при вызове формы из разных потоков дает мне уникальные идентификационные теги.Возможно ли это?

Спасибо!

(язык: C / C ++)

Ответы [ 2 ]

6 голосов
/ 04 февраля 2010

Вам нужно будет передать pthread_self() в вашу функцию Log () (или написать макрос).

1 голос
/ 04 февраля 2010

Один простой способ сделать это - создать атрибут потока (используя pthread_attr_ *) для имени потока, установить атрибут в каждом потоке, а затем прочитать его в функции журнала.

Вы также можете использовать pthread_self в функции журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...