+
+#ifdef KILLMETOO
+/*
+ * receive the next message on the given socket.
+ */
+void gras_msg_recv(gras_socket_t sock, gras_msg_t msg)
+{
+
+ gras_trp_sg_sock_data_t *sock_data =
+ (gras_trp_sg_sock_data_t *) sock->data;
+ gras_msg_t msg_got;
+ size_t size_got = sizeof(void*);
+
+ xbt_assert1(!gras_socket_is_meas(sock),
+ "Asked to receive a message on the measurement socket %p",
+ sock);
+
+ SIMIX_network_recv(sock_data->rdv,-1,&msg_got,&size_got,NULL);
+#ifdef KILLME
+ gras_trp_sg_sock_data_t *remote_sock_data;
+ gras_hostdata_t *remote_hd;
+ gras_msg_procdata_t msg_procdata =
+ (gras_msg_procdata_t) gras_libdata_by_name("gras_msg");
+
+ xbt_assert0(msg, "msg is an out parameter of gras_msg_recv...");
+
+ sock_data = (gras_trp_sg_sock_data_t *) sock->data;
+ remote_sock_data =
+ ((gras_trp_sg_sock_data_t *) sock->data)->to_socket->data;
+ DEBUG3("Remote host %s, Remote Port: %d Local port %d",
+ SIMIX_host_get_name(sock_data->to_host), sock->peer_port,
+ sock->port);
+ remote_hd = (gras_hostdata_t *) SIMIX_host_get_data(sock_data->to_host);
+
+ if (xbt_fifo_size(msg_procdata->msg_to_receive_queue) == 0) {
+ THROW_IMPOSSIBLE;
+ }
+ DEBUG1("Size msg_to_receive buffer: %d",
+ xbt_fifo_size(msg_procdata->msg_to_receive_queue));
+ msg_got = xbt_fifo_shift(msg_procdata->msg_to_receive_queue);
+
+ SIMIX_mutex_lock(remote_sock_data->mutex);
+ /* ok, I'm here, you can continuate the communication */
+ SIMIX_cond_signal(remote_sock_data->cond);
+
+ /* wait for communication end */
+ SIMIX_cond_wait(remote_sock_data->cond, remote_sock_data->mutex);
+
+ msg_got->expe = msg->expe;
+ memcpy(msg, msg_got, sizeof(s_gras_msg_t));
+ xbt_free(msg_got);
+ SIMIX_mutex_unlock(remote_sock_data->mutex);
+#endif
+ VERB3("Received a message type '%s' kind '%s' ID %lu", // from %s",
+ msg->type->name, e_gras_msg_kind_names[msg->kind], msg->ID);
+}
+#endif