Hi Martin,

> Would it be good to do a 0.5.1 release of the CPP to include this
fix?

Not just for this, no, I don't think so. The problem only affects
users who dynamically load qpid dlls from separate programs. It's been
fixed on trunk for some time, but I have a customer that needed a
0.5-based svn tag for safe keeping.

-Steve

> 2009/9/3  <[email protected]>:
> > Author: shuston
> > Date: Wed Sep  2 23:22:10 2009
> > New Revision: 810731
> >
> > URL: http://svn.apache.org/viewvc?rev=810731&view=rev
> > Log:
> > Removed TSS variables that tracked I/O counts; not used. 
> Part of fix for QPID-1868
> >
> > Modified:
> >    
> qpid/branches/0.5-release/qpid/cpp/src/qpid/sys/windows/AsynchIO.cpp
> >
> > Modified: 
> qpid/branches/0.5-release/qpid/cpp/src/qpid/sys/windows/AsynchIO.cpp
> > URL: 
> http://svn.apache.org/viewvc/qpid/branches/0.5-release/qpid/cp
> p/src/qpid/sys/windows/AsynchIO.cpp?rev=810731&r1=810730&r2=81
> 0731&view=diff
> > 
> ==============================================================
> ================
> > --- 
> qpid/branches/0.5-release/qpid/cpp/src/qpid/sys/windows/Asynch
> IO.cpp (original)
> > +++ 
> qpid/branches/0.5-release/qpid/cpp/src/qpid/sys/windows/Asynch
> IO.cpp Wed Sep  2 23:22:10 2009
> > @@ -50,12 +50,15 @@
> >  * recorded in each thread is about the same. If this turns 
> out not to be the
> >  * case we could rebalance the info occasionally.
> >  */
> > +#if 0
> > +  // These are never used and __declspec(thread) causes 
> accvio on dynamic load
> >  QPID_TSS int threadReadTotal = 0;
> >  QPID_TSS int threadMaxRead = 0;
> >  QPID_TSS int threadReadCount = 0;
> >  QPID_TSS int threadWriteTotal = 0;
> >  QPID_TSS int threadWriteCount = 0;
> >  QPID_TSS int64_t threadMaxReadTimeNs = 2 * 1000000; // start at
2ms
> > +#endif
> >
> >  /*
> >  * The function pointers for AcceptEx and ConnectEx need to 
> be looked up
> > @@ -642,12 +645,12 @@
> >  }
> >
> >  void AsynchIO::readComplete(AsynchReadResult *result) {
> > -    ++threadReadCount;
> > +  //    ++threadReadCount;
> >     int status = result->getStatus();
> >     size_t bytes = result->getTransferred();
> >     if (status == 0 && bytes > 0) {
> >         bool restartRead = true;     // May not if receiver 
> doesn't want more
> > -        threadReadTotal += bytes;
> > +        //        threadReadTotal += bytes;
> >         if (readCallback)
> >             restartRead = readCallback(*this, result->getBuff());
> >         if (restartRead)
> > @@ -674,10 +677,10 @@
> >     size_t bytes = result->getTransferred();
> >     AsynchIO::BufferBase *buff = result->getBuff();
> >     if (buff != 0) {
> > -        ++threadWriteCount;
> > +      //        ++threadWriteCount;
> >         writeInProgress = false;
> >         if (status == 0 && bytes > 0) {
> > -            threadWriteTotal += bytes;
> > +          //            threadWriteTotal += bytes;
> >             if (bytes < result->getRequested()) // Still 
> more to go; resubmit
> >                 startWrite(buff);
> >             else
> >
> >
> >
> > 
>
---------------------------------------------------------------------
> > Apache Qpid - AMQP Messaging Implementation
> > Project:      http://qpid.apache.org
> > Use/Interact: mailto:[email protected]
> >
> >
> 
> 
> 
> -- 
> Martin Ritchie
> 
>
---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:[email protected]
> 
> 


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to