12-14-2008
how to wake up a thread that blocking at epoll_wait?
I have two threads: one maintains a thread-safe message queue (handle this queue at the beginning of every loop) and deals with tcp connections, the other one posts message to the former one. the problem is, while the former one was blocking at epoll_wait, it's not sure that how long until the posted message be handled. So I want to wakeup the blocking thread when posting message to it.
Any suggestion?
8 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Im old to Unix but new to scripting
I have a MacBook running osx that I want to use as an nfs client. The server will be a linux box with a wake on lan card. Here's the idea. Run a cron command on the mac every minute that checks if I am on my home wireless network (the linux box is wired to... (0 Replies)
Discussion started by: anon0mus
0 Replies
2. Shell Programming and Scripting
m old to Unix but new to scripting
I have a MacBook running osx that I want to use as an nfs client. The server will be a linux box with a wake on lan card. Here's the idea. Run a cron command on the mac every minute that checks if I am on my home wireless network (the linux box is wired to... (6 Replies)
Discussion started by: anon0mus
6 Replies
3. UNIX for Advanced & Expert Users
Hello, I'm searching for a proper way to let the kernel space ISR(implemented in a kernel module) wake up a user space thread on a hardware interrupt.
Except for sending a real-time signal, is it possible to use a semaphore?
I've searched it on google, but it seems impossible to share a... (0 Replies)
Discussion started by: aaronwong
0 Replies
4. UNIX for Dummies Questions & Answers
Hi all,
Is it possible to do the following in Linux (kernel 2.6.x):
- A user-space thread goes to "sleep". Using any call/mechanism
- On a hardware generated interrupt, the Interrupt handler (ISR) "wakes" the sleeping user-thread.
I have seen wait_event() and wake_up() but it appears... (1 Reply)
Discussion started by: agaurav
1 Replies
5. Programming
Hi guys,
I am creating two posix threads. I have some queries, hopefully you will help me out with them
1) How can I put a thread to indefinite sleep, for indefinite time period. I am familiar with this
sleep(5);
for 5 second, how can I make it indefinite??
2) How can one thread wake another... (11 Replies)
Discussion started by: gabam
11 Replies
6. UNIX for Dummies Questions & Answers
As the title implies I'm having trouble setting up Wake-On-LAN with my Debian box. Here is the output from ethtool and my /etc/network/interfaces:
# cat /etc/network/interfaces
# /etc/network/interfaces - configuration file for ifup(8), ifdown(8)
# The loopback interface
auto lo
iface lo... (2 Replies)
Discussion started by: Azrael
2 Replies
7. Programming
among the below socket programming api's, please let me know which are blocking and non-blocking.
socket
accept
bind
listen
write
read
close (2 Replies)
Discussion started by: VSSajjan
2 Replies
8. UNIX for Dummies Questions & Answers
I'm a OS X user (MacBook Pro, OS X Lion) and I need it to wake up on Mondays, Wednesdays, Thursdays and Saturdays at 9:00 AM
on the rest of the days of the week at 7:00
I issue the following commands:
sudo pmset repeat wake MWRS 09:00:00 for the former
sudo pmset repeat wake TFU... (1 Reply)
Discussion started by: scrutinizerix
1 Replies
MSG_SEND(3) 1 MSG_SEND(3)
msg_send - Send a message to a message queue
SYNOPSIS
bool msg_send (resource $queue, int $msgtype, mixed $message, [bool $serialize = true], [bool $blocking = true], [int &$errorcode])
DESCRIPTION
msg_send(3) sends a $message of type $msgtype (which MUST be greater than 0) to the message queue specified by $queue.
PARAMETERS
o $queue
-
o $msgtype
-
o $message
-
o $serialize
- The optional $serialize controls how the $message is sent. $serialize defaults to TRUE which means that the $message is serial-
ized using the same mechanism as the session module before being sent to the queue. This allows complex arrays and objects to be
sent to other PHP scripts, or if you are using the WDDX serializer, to any WDDX compatible client.
o $blocking
- If the message is too large to fit in the queue, your script will wait until another process reads messages from the queue and
frees enough space for your message to be sent. This is called blocking; you can prevent blocking by setting the optional $block-
ing parameter to FALSE, in which case msg_send(3) will immediately return FALSE if the message is too big for the queue, and set
the optional $errorcode to MSG_EAGAIN, indicating that you should try to send your message again a little later on.
o $errorcode
-
RETURN VALUES
Returns TRUE on success or FALSE on failure.
Upon successful completion the message queue data structure is updated as follows: $msg_lspid is set to the process-ID of the calling
process, $msg_qnum is incremented by 1 and $msg_stime is set to the current time.
SEE ALSO
msg_remove_queue(3), msg_receive(3), msg_stat_queue(3), msg_set_queue(3).
PHP Documentation Group MSG_SEND(3)