Hi,

I am trying to understand isc_que_events and hoping someone here
can help me. :-)

I'm still on Firebird v2.5.4 but there's nothing in the changelog
to suggest any differences to the following...


If I call isc_event_block to allocate the buffers, and pass those
to isc_que_events I get an immediate callback (old count is still
0, new count is 1).

When I copy the new counts to the "existing" buffer and when call
isc_que_events again everything works as expected (isc_que_events
actually waits for an event to happen before callback).

Experimenting shows that if I create my own buffers and prime the
initial counts to 1 then I can avoid that confusing immediate
callback.  (Old count still at 1, new count at 2.)

I thought that maybe it might be important to grab the current
counter values with that first call to isc_que_events, but that
doesn't make any sense, as it appears that the returned counter
is always an increment of the passed in existing counter rather
than the return of some global count value (does not depend on
whether isc_que_events has been called once or multiple times).


So ...

Is that immediate callback, when initial counts are set to 0,
expected behaviour?  If so, why?

Is there any reason why I shouldn't prime my buffer counts with
1 and avoid that immediate callback?

-- 
Geoff Worboys
Telesis Computing Pty Ltd


------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to