03-10-2013
Instead of pipes -- if you're worried about resources or blocking, simply use a single thread that reads a message queue. Once a message queue (SYSV or POSIX) is set up there is a single syscall ( e.g., msgsnd, no blocking ) that is mt-safe and a mutex is not required.
The buffersize, unlike, a pipe, can be any size. The message queue buffer is kernel persistent, so if the entire set of threads/processes using the message queue die, the data is still available. Pipes are closed on process termination.
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Does anyone know what's new with Efficient dispatching in the Solaris 2.8 release (vs Solaris 2.6) release?
Specifically, does anyone know of a good website to get detailed information on thread dispatching using efficient dispatching in solaris 2.8?
Thank you. (1 Reply)
Discussion started by: uchachra
1 Replies
2. Shell Programming and Scripting
I'm using korn shell to connect to oracle, retrieve certain values, put them in a list, and iterate through them. While this method works, I can't help but think there is an easier method.
If you know of one, please suggest a shorter, more efficient method.
############### FUNCTIONS ... (6 Replies)
Discussion started by: SelectSplat
6 Replies
3. Shell Programming and Scripting
Hi,
Can someone let me know if the below AWK can be made much simpler / efficient ?
I have 200 fields, I need to substr only the last fields.
So i'm printing awk -F~ 'print {$1, $2, $3....................................$196,$197 , susbstr($198,1,3999), substr($199,1,3999)..}'
Is there a... (4 Replies)
Discussion started by: braindrain
4 Replies
4. Shell Programming and Scripting
Hi
I have the following at the end of a service shutdown script used in part of an active-passive failover setup:
###
# Shutdown all primary Network Interfaces
# associated with failover
###
# get interface names based on IP's
# and shut them down to simulate loss of
# heartbeatd
... (1 Reply)
Discussion started by: mikie
1 Replies
5. Shell Programming and Scripting
I have the following code.
printf "Test Message Report" > report.txt
while read line
do
msgid=$(printf "%n" "$line" | cut -c1-6000| sed -e 's///g' -e 's|.*ex:Msg\(.*\)ex:Msg.*|\1|')
putdate=$(printf "%n" "$line" | cut -c1-6000| sed -e 's///g' -e 's|.*PutDate\(.*\)PutTime.*|\1|')... (9 Replies)
Discussion started by: gugs
9 Replies
6. UNIX for Advanced & Expert Users
some of the data i receive has been typed in manually due to which there are often places where i find 8 instead of ( and the incorrect use of case
what according to you is the best way to correct such data.
The data has around 20,000 records.
The value i want to change is in the 4th field.... (2 Replies)
Discussion started by: VGR
2 Replies
7. Post Here to Contact Site Administrators and Moderators
Hi Everyone. First, I want to thank all of you for letting me participate in this great group.
I am having a bit of a problem.
After I get an email from a responder, I login to make my reply.
In the mean time I get another response by email from another member, I go to reply to them and I... (6 Replies)
Discussion started by: Ccccc
6 Replies
8. UNIX for Advanced & Expert Users
Hi Experts,
I've been trying simple grep to search for a string in a huge number of files in a directory.
grep <pattern> *
this gives the search results as well as the following -
grep: <filename>: Permission denied
grep: <filename>: Permission denied
for files which I don't have... (4 Replies)
Discussion started by: sumoka
4 Replies
9. Shell Programming and Scripting
Hello guys
My requirement is to read a file with parent-child relationship
we need to iterate through each row to find its latest child.
for eg. parent child
ABC PQR
PQR DEF
DEF XYZ
Expected Output
ABC XYZ
PQR XYZ
DEF XYZ
Script Logic :
read parent from file
seach child... (4 Replies)
Discussion started by: joshiamit
4 Replies
10. Linux
When unlocking a Linux server's console there's no event indicating successful logging
Is there a way I can fix this ?
I have the following in my rsyslog.conf
auth.info /var/log/secure
authpriv.info /var/log/secure (1 Reply)
Discussion started by: walterthered
1 Replies
mq_send(2) System Calls Manual mq_send(2)
NAME
mq_send - send a message to a message queue
SYNOPSIS
DESCRIPTION
The system call adds a message pointed to by the argument msg_ptr to the message queue specified by mqdes. The msg_len argument specifies
the length of the message in bytes. The value of msg_len should be less than or equal to the mq_msgsize attribute of the message queue, or
will fail.
If the specified message queue is not full, will insert the message into the queue at the position indicated by the msg_prio argument. A
message with priority, msg_prio, will be inserted behind any other messages with larger or equal priority. The value of msg_prio should be
less than
If the specified message queue is full and the flag is not set in the message queue blocking status associated with mqdes, will block in
priority order, until it can send a message on the queue, or until is interrupted by a signal. If the specified message queue is full and
the flag is set in the message queue blocking status associated with mqdes, the message will not be enqueued, and will return with an
error.
To use this function, link in the realtime library by specifying on the compiler or linker command line.
RETURN VALUE
returns the following values:
Successful completion. The message is enqueued.
Failure.
is set to indicate the error and the message is not enqueued.
ERRORS
If fails, is set to one of the following values:
[EAGAIN] The flag is set in the message queue blocking status associated with mqdes, and the message queue is full.
[EBADF] mqdes is not a valid message queue descriptor open for writing.
[EINTR] A signal interrupted the call to
[EINVAL] msg_ptr points to an invalid address, or the value of msg_prio is outside the valid range.
[EMSGSIZE] The specified message length, msg_len, exceeds the message size attribute of the message queue.
[ENOSYS] is not supported by the implementation.
SEE ALSO
mq_receive(2), mq_setattr(2), mq_getattr(2), sysconf(2).
STANDARDS CONFORMANCE
mq_send(2)