X-Git-Url: http://git.indexdata.com/?p=yazpp-moved-to-github.git;a=blobdiff_plain;f=src%2Fyaz-pdu-assoc-thread.cpp;h=951879a82b17cfd6d13f36bea1fead66f2ede912;hp=e48c0512a0f70e660518c392fa36c8a7eb9f4310;hb=82d0b6ce2accdbe9987d0b8b4e6e818514455e22;hpb=0cc824e02bc2c69986bec8c9dd9ff53f07a0cd3d diff --git a/src/yaz-pdu-assoc-thread.cpp b/src/yaz-pdu-assoc-thread.cpp index e48c051..951879a 100644 --- a/src/yaz-pdu-assoc-thread.cpp +++ b/src/yaz-pdu-assoc-thread.cpp @@ -1,10 +1,11 @@ -/* - * Copyright (c) 1998-2004, Index Data. +/* This file is part of the yazpp toolkit. + * Copyright (C) Index Data * See the file LICENSE for details. - * - * $Id: yaz-pdu-assoc-thread.cpp,v 1.14 2006-03-29 13:14:17 adam Exp $ */ +#if HAVE_CONFIG_H +#include +#endif #ifdef WIN32 #define USE_THREADS 1 #endif @@ -46,7 +47,12 @@ PDU_AssocThread::PDU_AssocThread( ISocketObservable *socketObservable) : PDU_Assoc(socketObservable) { - + +} + +PDU_AssocThread::~PDU_AssocThread() +{ + } void worker::run() @@ -63,7 +69,7 @@ void worker::run() void __cdecl #else void * -#endif +#endif events(void *p) { worker *w = (worker *) p; @@ -83,6 +89,14 @@ void PDU_AssocThread::childNotify(COMSTACK cs) new_observable->m_PDU_Observer = m_PDU_Observer->sessionNotify(new_observable, cs_fileno(cs)); + if (!new_observable->m_PDU_Observer) + { + new_observable->shutdown(); + delete new_observable; + delete socket_observable; + return; + } + worker *w = new worker; w->m_assoc = new_observable; w->m_mgr = socket_observable; @@ -109,6 +123,7 @@ void PDU_AssocThread::childNotify(COMSTACK cs) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab