The "spinner" in GdsConnection::NextOperation() doesn't seem to be any good idea, it causes the application to lock up in random situations.
The root cause is "return this.innerStream.Read(buffer, offset, count)" in XdrStream::Read, which block if no data is available. A hotfix is to add the following lines before this return statement System.Net.Sockets.NetworkStream stream = this.innerStream as System.Net.Sockets.NetworkStream; if (stream != null && stream.DataAvailable == false) return 0; A proper fix would require the use of a timeout period and some exception throwing in ReadInt32 et.al. Hope this help others stumbling over the same problem. -frode ------------------------------------------------------------------------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider