Нужно ли защищать 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);