Commit a642858e authored by rna's avatar rna

Use blocking Pipe_pull. Wake pipe on interrupt.

parent d6bbe761
Pipeline #2016 failed with stages
in 1 minute
......@@ -131,7 +131,7 @@ void *send_data_loop(void *ptr) {
while (1) {
ListNode *job;
do {
job = Pipe_poll(sock_ptr->sendDataQueue);
job = Pipe_pull(sock_ptr->sendDataQueue);
if (PrrtSocket_closing(sock_ptr)) {
if (block != NULL) {
PrrtBlock_destroy(block);
......
......@@ -380,6 +380,10 @@ int PrrtSocket_interrupt(PrrtSocket *s) {
PrrtReceiver_interrupt(s->receiver);
}
if(s->sendDataQueue != NULL) {
Pipe_wake(s->sendDataQueue);
}
void **res = NULL;
if (s->sendDataThread != 0) {
check(pthread_join(s->sendDataThread, res) == 0, "Join failed.");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment