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