[ServiceModel] Make TcpReplyChannel.OnClose thread-safe
}
bool close_started;
+ object close_lock = new object ();
protected override void OnClose (TimeSpan timeout)
{
- if (close_started)
- return;
- close_started = true;
+ lock (close_lock) {
+ if (close_started)
+ return;
+ close_started = true;
+ }
DateTime start = DateTime.Now;
// FIXME: consider timeout
{
throw new NotImplementedException ();
}
+
+ bool close_started;
+ object close_lock = new object ();
protected override void OnClose (TimeSpan timeout)
{
+ lock (close_lock) {
+ if (close_started)
+ return;
+ close_started = true;
+ }
+
client.Close ();
client = null;
base.OnClose (timeout);