Hi!

When I stop my application in roughly 1 out of 20 tries I get this error:

Assertion failed: pfd.revents & POLLIN (src/signaler.cpp:243) (here is the corresponding line of code: https://github.com/zeromq/libzmq/blob/v4.2.0/src/signaler.cpp#L243 )

     Stack trace of thread 8576:
         #0  0x00007f56d22a78a0 raise (libc.so.6)
         #1  0x00007f56d22a8f09 abort (libc.so.6)
#2 0x00007f5686c7cc99 n/a (/home/flex/core-1.5.0-SNAPSHOT/lib/native/libzmq.so.5)
         #3  0x00007f56d26255a0 _IO_2_1_stderr_ (libc.so.6)


Before I stop my application I disconnect from ALL publishers with

zsock_disconnect(subscriber, "tcp://%s:%d", c_ip, port);

after that I destroy my sockets and actors

zsock_destroy(&publisher);
   zsock_destroy(&req);
   zsock_destroy(&subscriber);

   //this is never finished
   zactor_destroy(&actorRep);
   zactor_destroy(&actorSub);


I guess its a problem with stopping the actors, how do I propperly stop this actor?

void sub_actor(zsock_t *pipe, void *args) {
    zsock_signal(pipe, 0);
    while (!zsys_interrupted) {
        char* topic;
        char* timestamp;
        char* value;
        char* id;
        zsock_recv(subscriber, "ssss", &topic, &timestamp, &id, &value);

        onMessageReceived(topic, timestamp, id,value);
    }
}

Thanks Florian



_______________________________________________
zeromq-dev mailing list
[email protected]
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to