diff options
author | Lassi Marttala <Lassi.LM.Marttala@partner.bmw.de> | 2012-09-26 09:07:15 +0200 |
---|---|---|
committer | Lassi Marttala <Lassi.LM.Marttala@partner.bmw.de> | 2012-10-09 13:45:42 +0200 |
commit | b7c4e65fbd95c8f4444fd357d70915e0e012b7a9 (patch) | |
tree | 7161606b24aed5edc4f2d399e231e5d7ad63d9da | |
parent | f9aef5f826a1c72c7b0066fa68891edee9416a61 (diff) | |
download | DLT-daemon-b7c4e65fbd95c8f4444fd357d70915e0e012b7a9.tar.gz |
[GDLT-137]: Add future resend request when pushed into buffer.
-rw-r--r-- | src/lib/dlt_user.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index 7c87174..92c1233 100644 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -2074,9 +2074,10 @@ void dlt_user_trace_network_segmented_thread(void *unused) } /* Indicator just to try to flush the buffer */ - if(data == (s_segmented_data *)DLT_DELAYED_RESEND_INDICATOR_PATTERN) + if(data->payload == (void *)DLT_DELAYED_RESEND_INDICATOR_PATTERN) { dlt_user_log_resend_buffer(); + free(data); continue; } @@ -2806,9 +2807,18 @@ DltReturnValue dlt_user_log_send_log(DltContextData *log, int mtype) DLT_SEM_FREE(); - /* Ask segmented thread to try emptying the buffer soon. */ - void *indic = (void *)DLT_DELAYED_RESEND_INDICATOR_PATTERN; - mq_send(dlt_user.dlt_segmented_queue_read_handle, (char *)&indic, sizeof(void *), 1); + /** + * Ask segmented thread to try emptying the buffer soon. + * This will be freed in dlt_user_trace_network_segmented_thread + * */ + s_segmented_data *resend_data = malloc(sizeof(s_segmented_data)); + resend_data->payload = (void *)DLT_DELAYED_RESEND_INDICATOR_PATTERN; + if(mq_send(dlt_user.dlt_segmented_queue_write_handle, (char *)&resend_data, sizeof(s_segmented_data *), 1) < 0) + { + dlt_log(LOG_ERR,"Could not request resending.\n"); + dlt_log(LOG_ERR, strerror(errno)); + free(resend_data); + } } switch (ret) |