Hi,
I have a method in an objective-C class. It has 2 callback functions written in C. The class pointer i.e. self
is passed to these functions as void *
. In the C functions I create a pointer of type class and assign the void *
parameter.
The first callback function executes successfully. But the void *
pointer becomes nil
in the 2nd callback function. Note that I haven't tweaked pointer in the first callback but still I get nil
in 2nd callback.
Any ideas what might be going wrong?
For example:
kr = IOServiceAddMatchingNotification(gNotifyPort, kIOFirstMatchNotification,
matchingDict, RawDeviceAdded, NULL,
&gRawAddedIter);
RawDeviceAdded(NULL, gRawAddedIter, self);
This works fine. But below function receives self
as nil
.
kr = IOServiceAddMatchingNotification(gNotifyPort, kIOFirstMatchNotification,
matchingDict, BulkTestDeviceAdded, NULL,
&gBulkTestAddedIter);
BulkTestDeviceAdded(NULL, gBulkTestAddedIter, self);