и есть одна хрень, которую я наверняка пойму, как прочту нормально доку по libevent, но буду очень благодарен, если подскажете в какую сторону гуглить.
В общем скопипастил откуда-то и чуть-чуть переделал вот такое https://github.com/sansaralab/ganges/blob/master/src/server/async.c
мало того, оно даже работает и даже практически так, как я этого ожидаю.
Но есть одна проблема - вчера не замерил точно какой, но у входного буфера обнаружился какой-то странный лимит, когда на вход даю огромную строку.
Делаю bufferevent_setwatermark(bev, EV_READ, 0, MAX_LINE);, а сам MAX_LINE = 16384, при чем я пробовал делать его больше , но в функции readcb evbuffer_readln возвращает всегда на глаз одинаковое количество символов, при этом цикл while выполняется только 1 итерацию.
Может быть немного сумбурно, но может ли в этом быть виноват bev = bufferevent_socket_new(base, fd, BEV_OPT_CLOSE_ON_FREE);, что судя по названию вроде бы как намекает, либо тут другие приколы с чтением больших массивов данных?
Привет, тут надо разбираться.. заранек подозреваю, что твои подозрения верны
Обсуждают сегодня