Not getting closure back in the processEvent callback

Hey, I am sending the closure as the fourth parameter in the OmmConsumer->registerclient().
Generally what I am doing is one external thread calls the registerclient(smth, smth, smth, (void*) &RFA_String).
When I try to get back the closure in my processing thread like *((RFA_String *) getclosure) it gives me null. This only happens when I have two threads, one calling register client and one processing the method. When I only have one thread doing both the stuff mentioned it works perfectly fine. Looking forward to the answers.
I don't think threads could be an issue because that's why closures are there for to help in environment like this.