Browse Source

ENGINE-133 added timeout parameter to retrieve_next_sync_msg

JNI-44
Edouard Tisserant 9 years ago
parent
commit
174fb003c2
  1. 23
      src/org_pEp_jniadapter_AbstractEngine.cc

23
src/org_pEp_jniadapter_AbstractEngine.cc

@ -208,7 +208,6 @@ extern "C" {
// Called by sync thread only // Called by sync thread only
PEP_STATUS show_handshake(void *obj, pEp_identity *me, pEp_identity *partner) PEP_STATUS show_handshake(void *obj, pEp_identity *me, pEp_identity *partner)
{ {
LOGD("ShowHandshake");
jobject me_ = NULL; jobject me_ = NULL;
jobject partner_ = NULL; jobject partner_ = NULL;
@ -223,7 +222,6 @@ extern "C" {
// Called by sync thread only // Called by sync thread only
PEP_STATUS message_to_send(void *obj, message *msg) PEP_STATUS message_to_send(void *obj, message *msg)
{ {
LOGD("Message To Send");
jobject msg_ = NULL; jobject msg_ = NULL;
msg_ = sync_env->NewObject(messageClass, messageConstructorMethodID, (jlong) msg); msg_ = sync_env->NewObject(messageClass, messageConstructorMethodID, (jlong) msg);
@ -245,15 +243,30 @@ extern "C" {
return 0; return 0;
} }
void *retrieve_next_sync_msg(void *arg) void *retrieve_next_sync_msg(void *arg, time_t *timeout)
{ {
locked_queue< sync_msg_t * > *queue = (locked_queue< sync_msg_t * > *) arg; locked_queue< sync_msg_t * > *queue = (locked_queue< sync_msg_t * > *) arg;
while (!queue->size()) time_t now, end;
void *msg;
if(*timeout == 0){
now = time(NULL);
end = now + *timeout;
}
while (!queue->size()){
// TODO: add blocking dequeue // TODO: add blocking dequeue
usleep(100000); usleep(100000);
void *msg = queue->front(); if(*timeout == 0){
now = time(NULL);
if(now > end)
return NULL;
}
}
msg = queue->front();
queue->pop_front(); queue->pop_front();
return msg; return msg;
} }

Loading…
Cancel
Save