LINUX.ORG.RU

Освобождение памяти в libuv

 , , ,


0

1

Играюсь тут с libuv. Вот код. По замыслу это пока просто ехо-сервер по UDP — на всё, что ему шлешь, отвечает «hello».

С приёмом всё ОК.

С отправкой не ОК.

Допустим, в строках 84, 85 и 86 аллоцируется память для буфера перед отправкой. В строке 94 этот буфер отправляется, после отправки вызывается коллбек, который начинается со строки 42.

А теперь внимание, вопросы: почему в том хендле, который отдаётся коллбеку, указатель на буфер NULL (строка 46 и 47)? И почему в то же время количество этих буферов в том же хендле ненулевое? Как я должен освобождать память буфера, если мне не дают на него указатель? Какой смысл тогда в коллбеке on_send? И почему тогда тот же трюк для on_read работает нормально?

https://gist.github.com/pfactum/b299826cb60299c1b1bb39dabae75006#file-test_uv-c-L46

// TODO: _req->data SHOULD point to current buf, no?

No.

utf8nowhere ★★ ()
Ответ на: комментарий от utf8nowhere

Т.е., я могу перед отправкой руками записать в ->data всё, что хочу, а потом юзать?

post-factum ★★★★★ ()

Играюсь тут с libuv.

Брось каку, оно не готово, я попытался его использовать для продакшна и пожалел, надо было брать проверенный временем libev.

DELIRIUM ☆☆☆☆☆ ()
Ответ на: комментарий от DELIRIUM

Брось каку, оно не готово, я попытался его использовать для продакшна и пожалел, надо было брать проверенный временем libev.

Если не сложно, расскажи пожалуйста в чем какность? Она вроде как рулит мильенами нодЖеЭсами и активно развивается в отличие от. Правда я её в основном пользую как тонкую кроссплатформенную обертку над фс интерфейсом что бы не велосипедить и в буст не вляпаться.

anonymous ()

брось каку, возьми Erlang

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.