File tree 1 file changed +7
-5
lines changed
1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change 209
209
<para>
210
210
Modules must remain interruptible by signals so that the server can
211
211
correctly handle authentication timeouts and shutdown signals from
212
- <application>pg_ctl</application>. For example, a module receiving
213
- <symbol>EINTR</symbol>/<symbol>EAGAIN</symbol> from a blocking call
214
- should call <function>CHECK_FOR_INTERRUPTS()</function> before retrying.
215
- The same should be done during any long-running loops. Failure to follow
216
- this guidance may result in unresponsive backend sessions.
212
+ <application>pg_ctl</application>. For example, blocking calls on sockets
213
+ should generally be replaced with code that handles both socket events
214
+ and interrupts without races (see <function>WaitLatchOrSocket()</function>,
215
+ <function>WaitEventSetWait()</function>, et al), and long-running loops
216
+ should periodically call <function>CHECK_FOR_INTERRUPTS()</function>.
217
+ Failure to follow this guidance may result in unresponsive backend
218
+ sessions.
217
219
</para>
218
220
</listitem>
219
221
</varlistentry>
You can’t perform that action at this time.
0 commit comments