[Libwebsockets] Fast loop of LWS_CALLBACK_GET_THREAD_ID events.

Bruce Perens bruce at perens.com
Fri Apr 24 23:16:45 CEST 2015


I turned on debugging messages in libwebsockets. This is what I get:

[1429909911:8716] PARSER: server sees client close packet
Change poll FD fd = 8, events = 5
[1429909911:8716] DEBUG: libwebsocket_read: read_ok                    *At
this point, the libwebsocket_service() loop starts eating the CPU.*
[1429909971:8718] INFO: service_fd: closing due to 0 length read        *60
seconds later, we realize the connection is gone.*
[1429909971:8718] DEBUG: Close and handled
[1429909971:8718] DEBUG: close: just_kill_connection
[1429909971:8719] INFO: remove_wsi_socket_from_fds: wsi=0x1716e00, sock=8,
fds pos=2
Delete poll FD, count = 1 fd = 8, events = 0
[1429909971:8719] DEBUG: calling back CLOSED
Closed.


On Fri, Apr 24, 2015 at 11:13 AM, Bruce Perens <bruce at perens.com> wrote:

> My server currently catches LWS_CALLBACK_GET_THREAD_ID and returns
> pthread_self(). Currently, it never
> calls libwebsocket_callback_on_writable().
>
> Using either the released version or a pull from git today, a
> libwebsocket_service() loop with a long delay eats the CPU while a socket
> is closing. This is what I am seeing:
>
> Add poll FD, count = 1 fd = 6, events = 1      *Start of serving a few
> files via HTML. Lots of LWS_CALLBACK_GET_THREAD_ID events happening here.*
> Add poll FD, count = 2 fd = 7, events = 1
> Add poll FD, count = 3 fd = 8, events = 1
> Add poll FD, count = 4 fd = 9, events = 1
> Delete poll FD, count = 3 fd = 7, events = 0
> Delete poll FD, count = 2 fd = 8, events = 0
> Delete poll FD, count = 1 fd = 9, events = 0
> Add poll FD, count = 2 fd = 8, events = 1       *Start of Websocket
> service.*
> Connection with protocol: radio-server-1 path: /foo
> Change poll FD fd = 8, events = 5                  *Service is in closing
> state, CPU utilization goes to 100%, continuous LWS_CALLBACK_GET_THREAD_ID
> events here.*
> Delete poll FD, count = 1 fd = 8, events = 0    Service is closed, CPU
> utilization goes low again.
> Websocket connection closed.
>
> Am I providing the wrong information to the LWS_CALLBACK_GET_THREAD_ID
> callback?
>
>     Thanks
>
>     Bruce
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://libwebsockets.org/pipermail/libwebsockets/attachments/20150424/36e43b07/attachment-0001.html>


More information about the Libwebsockets mailing list