Skip to content

Commit ec82398

Browse files
committed
Fixed missing NetworkStream lock
1 parent 12bb5c0 commit ec82398

3 files changed

Lines changed: 18 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [2.2.2] - 2023-09-20
8+
### Fixed
9+
- Missing NetworkStream lock.
10+
711
## [2.2.1] - 2023-08-01
812
### Fixed
913
- IDisposable implementation.

PL.Modbus/NetworkStream.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,20 @@ public override void Open()
6868
public override void Close() =>
6969
_tcpClient.Dispose();
7070

71-
public override IDisposable Lock() => new DisposableLock();
71+
public override IDisposable Lock() => new NetworkStreamLock(this);
7272

73-
private class DisposableLock : IDisposable
73+
private class NetworkStreamLock : IDisposable
7474
{
75-
public void Dispose() { }
75+
NetworkStream _networkStream;
76+
77+
public NetworkStreamLock(NetworkStream networkStream)
78+
{
79+
_networkStream = networkStream;
80+
Monitor.Enter(_networkStream);
81+
}
82+
83+
public void Dispose() =>
84+
Monitor.Exit(_networkStream);
7685
}
7786
}
7887
}

PL.Modbus/PL.Modbus.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
<RepositoryType>git</RepositoryType>
1313
<PackageTags>modbus;client</PackageTags>
1414
<PackageReleaseNotes>Fixed
15-
- IDisposable implementation</PackageReleaseNotes>
15+
- Missing NetworkStream lock.</PackageReleaseNotes>
1616
<PackageLicenseExpression>MIT</PackageLicenseExpression>
17-
<VersionPrefix>2.2.1</VersionPrefix>
17+
<VersionPrefix>2.2.2</VersionPrefix>
1818
</PropertyGroup>
1919

2020
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

0 commit comments

Comments
 (0)