Hello!

I might have got it wrong, but it looks like you are trying to share a
`uv_loop_t` between two threads. libuv is generally not thread safe, the
only thread-safe primitive is `uv_async_send` which may be used to invoke a
callback on a loop that runs in some other thread.

Hope this helps,
Fedor.

On Fri, Apr 21, 2017 at 4:01 PM, nicolas bats <[email protected]> wrote:

> Hi guys,
> I'm discovering libuv and things are going well _on osx_ and things are
> going not well _on windows_...
> I'm trying to set up a tcp server and example I'm following is from here :
> https://github.com/litesync/libuv_message_framing
>
> I have two threads that listen on usb inputs and I want them to send a
> copy of their buffer to the tcp server.
> first, is tcp the good choice for that task?
>
> at start of the program, I set up a uv_loop for the server like in
> https://github.com/litesync/libuv_message_framing/blob/master/test/test.c
> so it's a threaded server:
>
>         uv_barrier_init(&(loop_ptr->barrier), 2);
>
>         uv_thread_create(&(loop_ptr->reader_thread), reader_start,
> loop_ptr);
>
>         /* wait until the listening socket is ready on the reader thread
> */
>
>         uv_barrier_wait(&(loop_ptr->barrier));
>
>
> with reader_start() that start an uv loop.
>
>
> right after, the two threads are created and each one is setting up a
> socket which attempt to connect to the server:
>
>     struct sockaddr_in dest;
>
>     uv_ip4_addr("127.0.0.1", loop_ptr->serverPort ,&dest);
>
>     uv_connect_t* connect = malloc(sizeof(uv_connect_t));
>
>
>
>     uv_msg_t* socket = malloc(sizeof(uv_msg_t));
>
>     rc = uv_msg_init(loop_ptr->server_loop, socket, UV_TCP);
>
>
>
>     uv_tcp_connect(connect, (uv_tcp_t*)socket, (const struct sockaddr*)&dest,
> on_connect);
>
>
> and at this early point, it's not clear for me why it works on osx and why
> it fails on windows...
>
> on windows (uv-1.10.2 MSYS2/GCC), it tells that an assertion failed
> ((handle))->activecnt > 0... but not always....
>
>
> so, can you please tell me what I'm doing wrong.
>
>
> many thanks,
>
> nico
>
> --
> You received this message because you are subscribed to the Google Groups
> "libuv" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/libuv.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/libuv.
For more options, visit https://groups.google.com/d/optout.

Reply via email to