mirror of
https://github.com/postgres/postgres.git
synced 2025-07-18 17:42:25 +03:00
Simplify waiting logic in reading from / writing to client.
The client socket is always in non-blocking mode, and if we actually want blocking behaviour, we emulate it by sleeping and retrying. But we have retry loops at different layers for reads and writes, which was confusing. To simplify, remove all the sleeping and retrying code from the lower levels, from be_tls_read and secure_raw_read and secure_raw_write, and put all the logic in secure_read() and secure_write().
This commit is contained in:
@ -185,7 +185,8 @@ pq_init(void)
|
||||
/*
|
||||
* In backends (as soon as forked) we operate the underlying socket in
|
||||
* nonblocking mode and use latches to implement blocking semantics if
|
||||
* needed. That allows us to provide safely interruptible reads.
|
||||
* needed. That allows us to provide safely interruptible reads and
|
||||
* writes.
|
||||
*
|
||||
* Use COMMERROR on failure, because ERROR would try to send the error to
|
||||
* the client, which might require changing the mode again, leading to
|
||||
|
Reference in New Issue
Block a user