Commit a642858e authored by rna's avatar rna
Browse files

Use blocking Pipe_pull. Wake pipe on interrupt.

parent d6bbe761
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
+4 −0
Original line number Diff line number Diff line
@@ -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.");