apache / apache/iotdb-client-csharp
Why doesn’t SessionDataSet implement the IAsyncDisposable interface?
- Dominant language
- C#
- Stars
- 24
- Forks
- 6
- PR merge metrics
- No merged PRs in 30d
Description
Currently, SessionDataSet implements the IDisposable interface. However, in its Dispose() method, the asynchronous Close() method is invoked synchronously.
Actual implementation:
```csharp
protected virtual void Dispose(bool disposing)
{
if (this.disposedValue)
return;
if (disposing)
{
try
{
//synchronous call
this.Close().Wait();
}
catch
{
}
}
this.disposedValue = true;
}
```
Proposed implementation:
```csharp
protected virtual Task DisposeAsync(bool disposing)
{
if (this.disposedValue)
return;
if (disposing)
{
try
{
//asynchronous call
await this.Close();
}
catch
{
}
}
this.disposedValue = true;
}
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Locate SessionDataSet and inspect its existing IDisposable implementation, especially Dispose() and the asynchronous Close() entry point. Confirm the class supports asynchronous disposal and that Close() is awaited without changing the existing synchronous disposal behavior; the issue provides no test or file path, so completion should be checked against both disposal paths.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- api
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100