Vlad,

I think have found the problem in server.

Look at this:

--------
ISC_STATUS rem_port::que_events(P_EVENT * stuff, PACKET* sendL)
{
...

        Rvnt* event;
        for (event = rdb->rdb_events; event; event = event->rvnt_next)
        {
                if (!event->rvnt_iface)
                {
                        event->rvnt_destroyed = 0;
                        break;
                }
        }

        if (!event)
        {
                event = FB_NEW Rvnt;
#ifdef DEBUG_REMOTE_MEMORY
                printf("que_events(server)        allocate event   %x\n", 
event);
#endif
                event->rvnt_next = rdb->rdb_events;
                rdb->rdb_events = event;
                event->rvnt_callback = FB_NEW Callback(rdb, event);
        }
--------

This code runs concurrently and find the same empty slot for
simultaneous events being registered.


Adriano


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to