- INFO1("Sending task %p",tk);
- rv = MSG_task_send(tk,RSTRING(mailbox)->ptr);
- if(rv != MSG_OK)
- {
- if (rv == MSG_TRANSFER_FAILURE )
- rb_raise(rb_eRuntimeError,"Transfer failure while Sending");
- else if ( rv == MSG_HOST_FAILURE )
- rb_raise(rb_eRuntimeError,"Host failure while Sending");
- else if ( rv == MSG_TIMEOUT_FAILURE )
- rb_raise(rb_eRuntimeError,"Timeout failure while Sending");
- else
- rb_raise(rb_eRuntimeError,"MSG_task_send failed");
+ data = MSG_task_get_data(tk);
+ data->ruby_task = (void *) task;
+ MSG_task_set_data(tk, (void *) data);
+ XBT_DEBUG("Sending task %p", tk);
+ rv = MSG_task_send(tk, RSTRING_PTR(mailbox));
+ if (rv != MSG_OK) {
+ if (rv == MSG_TRANSFER_FAILURE)
+ rb_raise(rb_eRuntimeError, "Transfer failure while Sending");
+ else if (rv == MSG_HOST_FAILURE)
+ rb_raise(rb_eRuntimeError, "Host failure while Sending");
+ else if (rv == MSG_TIMEOUT)
+ rb_raise(rb_eRuntimeError, "Timeout failure while Sending");
+ else
+ rb_raise(rb_eRuntimeError, "MSG_task_send failed");