osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Checking network input processing by Python for a multi-threaded server


>> I get an other impression from the statements ?self._threads.append(t)? (process_request)
>> and ?thread.join()? (server_close).
>
> 	Okay -- v3.7 has added more logic that didn't exist in the v3.5 code
> I was examining... (block_on_close is new).

Thanks for such a version comparison.


> 	However, I need to point out that this logic is part of server_close(),
> which is not the same as shutdown(). You have been calling shutdown() which
> only ends the loop accepting new connections, but leaves any in-process
> threads to finish handling their requests.
>
> 	server_close() needs to be called by your code, I would expect AFTER
> calling shutdown() to stop accepting new requests (and starting new threads
> which may not be in the list that the close is trying to join).

Should this aspect be taken into account by the code specification ?with server:??


> And after calling server_close() you will not be able to simply "restart" the server
> -- you must go through the entire server initialization process
> (ie: create a whole new server instance).

This should be finally achieved by the implementation of my method ?perform_command?.
I hope that corresponding data processing can be cleanly repeated then
as desired for test purposes.

Regards,
Markus