anything in WebServer procedure?
but assuming not, then the next step would be to determine what in the delete is causing a problem - ie an example...
In the WebServer procedure I have some embeds, but mostly the ones who sets defaults to the specific client and the program start. Reding from INI file and open two files to read some company defaults and close again when the variables are set.
Recently to at least a work around the problem I did this (check code). If i detect and error 500 in the server I close and let the watchdog run the service again. Is not clean, but at least if the server goes Error 500 at an unfortunate hour, it start again. (The simple watchdog I use for the benefit of others here
https://w-shadow.com/blog/2009/03/04/restart-on-crash/). If there is a clean way to do that, It will be appreciated.
I will check and try to make an example, In this case If you tell me what can help you out It could be great to try to compose whats needed to make this happen.
loc:RequestData :=: p_RequestData
If (self.performance.NumberOfThreads >= self.MaxThreads and self.MaxThreads > 0) or loc:shuttingDown
If loc:shuttingDown = 0 and self.PoolSize
Loop Index = 1 to self.PoolSize
If self.ThreadPool[Index].Thread <> 0 and self.ThreadPool[Index].Status = Net:PoolWaiting and Self.ThreadPool[Index].ServerID = self.ServerID
PoolWaiting = Index
Break
Elsif self.ThreadPool[Index].Thread = 0 and StartNewPool = 0! is there a space in the pool for another thread?
StartNewPool = Index
End
End
End
if loc:RequestData.RequestMethodType <> NetWebServer_DELETESESSION and PoolWaiting = 0
if not self.WebSocketServer &= null and self.WebSocketServer.IsWebSocket(self.packet.SockID)
! do not send invalid reply, it's a malformed packet in the wss protocol.
else
self.SendError(500,'Server Busy','Server Busy, try again shortly')
HALT() !En lo que logramos onseguir cual es el procedure que falla end
self._PerfEndThread(0,0,500) ! Errors are counted, but otherwise not included in stats
do UpdateStats
dispose(p_RequestData.DataString)
end
return
End