typedef struct s_gras_msg_listener_ {
xbt_thread_t listener; /* keep this first, gras_socket_im_the_server() does funky transtyping in sg_msg.c */
typedef struct s_gras_msg_listener_ {
xbt_thread_t listener; /* keep this first, gras_socket_im_the_server() does funky transtyping in sg_msg.c */
xbt_queue_t socks_to_close; /* let the listener close the sockets, since it may be selecting on them. Darwin don't like this trick */
xbt_socket_t wakeup_sock_listener_side;
xbt_socket_t wakeup_sock_master_side;
xbt_queue_t socks_to_close; /* let the listener close the sockets, since it may be selecting on them. Darwin don't like this trick */
xbt_socket_t wakeup_sock_listener_side;
xbt_socket_t wakeup_sock_master_side;
- /* Cannot display who sent this since in SG, xbt_socket_peer_* wont work:
- I'm not the user process but I'm just the listener. Too bad */
+ /* Cannot display who sent this since in SG, xbt_socket_peer_* wont work:
+ I'm not the user process but I'm just the listener. Too bad */
XBT_VERB("Got a '%s' message (%s) from sock %p. Queue it for handling by main thread",
gras_msgtype_get_name(msg->type),e_gras_msg_kind_names[msg->kind],msg->expe);
XBT_VERB("Got a '%s' message (%s) from sock %p. Queue it for handling by main thread",
gras_msgtype_get_name(msg->type),e_gras_msg_kind_names[msg->kind],msg->expe);
gras_msg_listener_t arg = xbt_new0(s_gras_msg_listener_t, 1);
XBT_VERB("Launch listener");
gras_msg_listener_t arg = xbt_new0(s_gras_msg_listener_t, 1);
XBT_VERB("Launch listener");
arg->socks_to_close = xbt_queue_new(0, sizeof(int));
arg->init_mutex = xbt_mutex_init();
arg->init_cond = xbt_cond_init();
arg->socks_to_close = xbt_queue_new(0, sizeof(int));
arg->init_mutex = xbt_mutex_init();
arg->init_cond = xbt_cond_init();
xbt_thread_join(pd->listener->listener);
// gras_socket_close(pd->listener->wakeup_sock_master_side); FIXME: uncommenting this leads to deadlock at terminaison
xbt_thread_join(pd->listener->listener);
// gras_socket_close(pd->listener->wakeup_sock_master_side); FIXME: uncommenting this leads to deadlock at terminaison