mirror of
https://github.com/samba-team/samba.git
synced 2025-07-22 16:59:09 +03:00
This is a messaging layer based on unix domain datagram sockets. Sending to an idle socket is just one single nonblocking sendmsg call. If the recv queue is full, we start a background thread to do a blocking call. The source4 based imessaging uses a polling fallback. In a situation where thousands of senders beat one single blocked socket, this will generate load on the system due to the constant polling. This does not happen with a threaded blocking send call. The threaded approach has another advantage: We save become_root() calls on the retries. The access checks are done when the blocking socket is connected, the threaded blocking send call does not check permissions anymore. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
19 lines
629 B
Python
19 lines
629 B
Python
#!/usr/bin/env python
|
|
|
|
bld.SAMBA3_SUBSYSTEM('UNIX_MSG',
|
|
source='unix_msg.c',
|
|
deps='replace PTHREADPOOL')
|
|
|
|
bld.SAMBA3_BINARY('unix_msg_test',
|
|
source='tests.c',
|
|
deps='UNIX_MSG POLL_FUNCS_TEVENT',
|
|
install=False)
|
|
bld.SAMBA3_BINARY('unix_msg_test_drain',
|
|
source='test_drain.c',
|
|
deps='UNIX_MSG POLL_FUNCS_TEVENT',
|
|
install=False)
|
|
bld.SAMBA3_BINARY('unix_msg_test_source',
|
|
source='test_source.c',
|
|
deps='UNIX_MSG POLL_FUNCS_TEVENT',
|
|
install=False)
|