- INFO1(">>>>>>>> Listening on port %d <<<<<<<<", gras_socket_my_port(globals->sock));
- globals->done=0;
-
- data =1000;
- xbt_dynar_foreach(hosts,i,h1) {
- peer = gras_socket_client(h1->name,h1->port);
- done=0;
- while (!done){
- TRY {
- gras_msg_handle(0);
- }CATCH(e){
- if (e.category != timeout_error)
- RETHROW;
- xbt_ex_free(e);
- done = 1;
- }
- }
-
- gras_msg_send(peer,gras_msgtype_by_name("data"),&data);
- INFO3(">>>>>>>> Send Data (%d) from %s to %s <<<<<<<<",
- data,argv[0],h1->name);
+ /* Register the known messages */
+ gras_msgtype_declare("data", gras_datadesc_by_name("string"));
+
+
+ /* write to the receivers */
+ xbt_dynar_foreach(peers,iter,h) {
+ connected = 0;
+ while (!connected) {
+ xbt_ex_t e;
+ TRY {
+ peer = gras_socket_client(h->name,h->port);
+ connected=1;
+ } CATCH(e) {
+ if (e.category != system_error /*in RL*/&& e.category != mismatch_error/*in SG*/)
+ RETHROW;
+ xbt_ex_free(e);
+ gras_os_sleep(0.01);
+ }
+ }
+ gras_msg_send(peer,"data",&data);
+ if (gras_if_SG()) {
+ INFO2(" Sent Data from %s to %s", gras_os_myname(),h->name);
+ } else {
+ INFO0(" Sent Data");
+ }
+
+ gras_socket_close(peer);