forked from M-Labs/artiq
runtime: save now on RPC
This commit is contained in:
parent
1bee5bb460
commit
9dd88f8b3b
|
@ -475,6 +475,7 @@ void send_rpc(int service, const char *tag, ...)
|
|||
{
|
||||
struct msg_rpc_send request;
|
||||
|
||||
request.now = now;
|
||||
if(service != 0)
|
||||
request.type = MESSAGE_TYPE_RPC_SEND;
|
||||
else
|
||||
|
|
|
@ -87,6 +87,7 @@ struct msg_watchdog_clear {
|
|||
|
||||
struct msg_rpc_send {
|
||||
int type;
|
||||
long long int now;
|
||||
int service;
|
||||
const char *tag;
|
||||
va_list args;
|
||||
|
|
|
@ -983,6 +983,12 @@ static int process_kmsg(struct msg_base *umsg)
|
|||
case MESSAGE_TYPE_RPC_BATCH: {
|
||||
struct msg_rpc_send *msg = (struct msg_rpc_send *)umsg;
|
||||
|
||||
/*
|
||||
* save now in case the RPC stops the kernel
|
||||
* (e.g. pause with preemption)
|
||||
*/
|
||||
now = msg->now;
|
||||
|
||||
if(!send_rpc_request(msg->service, msg->tag, msg->args)) {
|
||||
core_log("Failed to send RPC request (service %d, tag %s)\n",
|
||||
msg->service, msg->tag);
|
||||
|
|
Loading…
Reference in New Issue