try to release of the memory for avoid memory leak on unix .net 5

master
この中二病に爆焔を! 5 years ago
parent 16c5a7f381
commit 13a4e567f9

@ -78,10 +78,10 @@ Public Class IPCSocket : Implements ITaskDriver
<Protocol(Protocols.GetArgumentByIndex)>
Public Function GetArgumentByIndex(request As RequestStream, remoteAddress As System.Net.IPEndPoint) As BufferPipe
Dim i As Integer = BitConverter.ToInt32(request.ChunkBuffer, Scan0)
Dim buf As ObjectStream = _handleGetArgument(i)
Dim pipe As New DataPipe(buf)
Return pipe
Using buf As ObjectStream = _handleGetArgument(i)
Return New DataPipe(buf)
End Using
End Function
<Protocol(Protocols.PostStart)>

@ -6,6 +6,9 @@ Imports Microsoft.VisualBasic.Serialization
Imports Microsoft.VisualBasic.Serialization.JSON
Public Class ObjectStream : Inherits RawStream
Implements IDisposable
Dim disposedValue As Boolean
Public Property method As StreamMethods
Public Property stream As Byte()
@ -15,6 +18,9 @@ Public Class ObjectStream : Inherits RawStream
Me.method = method
Me.stream = New StreamPipe(stream).Read
Me.type = type
Call stream.Close()
Call stream.Dispose()
End Sub
Sub New(raw As Byte())
@ -44,4 +50,30 @@ Public Class ObjectStream : Inherits RawStream
Return ms.ToArray
End Using
End Function
Protected Overridable Sub Dispose(disposing As Boolean)
If Not disposedValue Then
If disposing Then
' TODO: ()
Erase stream
End If
' TODO: ()
' TODO: null
disposedValue = True
End If
End Sub
' ' TODO: Dispose(disposing As Boolean)
' Protected Overrides Sub Finalize()
' ' Dispose(disposing As Boolean)
' Dispose(disposing:=False)
' MyBase.Finalize()
' End Sub
Public Sub Dispose() Implements IDisposable.Dispose
' Dispose(disposing As Boolean)
Dispose(disposing:=True)
GC.SuppressFinalize(Me)
End Sub
End Class

@ -91,6 +91,7 @@ Public Class SlaveTask
Call Console.WriteLine($"[{host.GetHashCode.ToHexString}] thread exit...")
result = decomposingStdoutput(resultStream, resultType, host.GetHashCode)
resultStream.Close()
resultStream.Dispose()
Return result

Loading…
Cancel
Save