Нужно ли защищать bufferevent_write с мьютексом на многопоточном сервере?

libevent утверждает, что потокобезопасен, но мне интересно, если это означает, что нам не нужно запускать bufferevent_write защищен мьютексами.

Я хотел бы запустить функцию bufferevent_write из libevent в нескольких разных потоках, и они могут быть выполнены одновременно.

Согласно документации, bufferevent_write Функция добавляет данные в buffereventвыходной буфер, поэтому он должен защищать буфер, но я не знаю, защищен ли он мьютексом, или мне нужно защищать его вручную?

1 ответ

Решение

Глядя на исходный код libevent кажется, что мьютексы не включены.
bufferevent_write звонки evbuffer_add, Я нашел исходный код этой функции здесь: http://transmission.sourcearchive.com/documentation/1.75/event_8h_b652a2f82d23509713258a6e44697164.html
Поэтому я думаю, что мне нужно вызвать эти две функции:

void evbuffer_lock(struct evbuffer *buf);
void evbuffer_unlock(struct evbuffer *buf);
Другие вопросы по тегам