11-21-2012
Great! Welcome to the land of parallel processing, concurrent threads and locks!
In one of my past projects, I was cooking up a container object that took in data from very many concurrent threads, fast, by having many input containers so they could just bypass locked ones, and internal threads to merge the data, order not guaranteed, and feed it to multiple output containers as evenly as possible but avoiding locks, so it would be as delay-free a container as possible. The containers were single linked lists, so they could easily be emptied and merged. One can imagine this used with a multi-thread sorting container to sort data as it arrived such that, when the last item arrived, the sorted output could commence immediately.
This User Gave Thanks to DGPickett For This Post:
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hello,
I just tried to run this command: /usr/lib/sendmail -d0.1 -bt < /dev/null | grep -i version
Its doing what I want: writing out the sendmail version.
But on some machines it writing the version and then exit to the prompt but on others its writing the version but then hangs, I need to... (0 Replies)
Discussion started by: jOOc
0 Replies
2. Solaris
hi all,
i had a program which created a socket on port 7113, but for some reason the program was hunbg and I had to Ctrl+c it. I ran the program for a couple of times and now when I do a netstat -a I see that these sockets are lingering and that might be the reason why my program is not... (1 Reply)
Discussion started by: Naanu
1 Replies
3. UNIX for Dummies Questions & Answers
Ok, this question my be different. I can ping our unix box, but when we I to access the webpage I cant. To access the webpage I type http://ipaddress:some port. How do I check if a port is hanging and how would I un hang it. Sorry if question doesnt make sense. (1 Reply)
Discussion started by: NycUnxer
1 Replies
4. Shell Programming and Scripting
Hello,
I have the following shell script and when i execute, it keeps hanging and nothing happens
Please let me know.
Requirement is to read data from file and pass it to the sql and create files as shown.
code
/********
#!/bin/sh
while read user.dat
do
echo "user = $1 email =... (1 Reply)
Discussion started by: rakeshsr12
1 Replies
5. Programming
Hi Experts,
I have a programming assignment that asks us to implement a pipegrep function. it basically has 5 stages and each stage has a thread and buffers are used between stages.
am currently implementing stage 1 . In stage 1 am suppose to read directory and store the filenames in buffer1... (15 Replies)
Discussion started by: amejoish
15 Replies
6. Solaris
Hi Folks,
When i execute the command df -kh in my system the o/p hangs..
The command runs fine but takes a lot of time before coming back to the # prompt.
Can anyone please suggest the possible cause and solution?. (10 Replies)
Discussion started by: vivek.goel.piet
10 Replies
7. Shell Programming and Scripting
Hey folks. Long time lurker, first time poster. I'm a bit of a newbie at "coding" (obviously, scripting is a teensy bit different than coding) and I've run into a problem that I just can't seem to get around.
I'm going through a list of servers to check their name, IP, reverse-NSLOOKUP name and... (2 Replies)
Discussion started by: Bearwhale
2 Replies
8. Shell Programming and Scripting
/bin/sed -n '$q;5633653,0 p' lfile
lfile is a log file that is being updated several times a second.
so, the command above figures out the line number it wants in the lfile and then proceeds to output all lines from that line number to the end of the file.
the problem is, the end of the... (2 Replies)
Discussion started by: SkySmart
2 Replies
9. Shell Programming and Scripting
Hi All,
I am transfering a file through sftp. But the script is hanging at exit occasionally.
I am suspecting that sftp is hanging due to buffer size issue.
If that is the case can any body suggest a solution.
Please find the code.
echo "cd /${CUST_ID}/inbound/${SAFET_ID}" >... (0 Replies)
Discussion started by: Girish19
0 Replies
10. Shell Programming and Scripting
Could you please give your inputs on the below issue:
source.xml
<?xml version="1.0" encoding="UTF-16"?>
<P1 >
<C1 type="i"><2></C1>
<V1 type="string"><6.2></V1>
<D1 type="string">
<D2><1.0></D2>
<D2><2.0></D2>
</D1>
......................
......................
many more... (7 Replies)
Discussion started by: unme
7 Replies
LEARN ABOUT FREEBSD
xo_close_container_h
LIBXO(3) BSD Library Functions Manual LIBXO(3)
NAME
xo_emit -- emit formatted output based on format string and arguments
LIBRARY
library ``libxo''
SYNOPSIS
#include <libxo/xo.h>
LIBXO(3) BSD Library Functions Manual LIBXO(3)
NAME
xo_open_container
xo_open_container_h
xo_open_container_hd
xo_open_container_d
xo_close_container
xo_close_container_h
xo_close_container_hd
xo_close_container_d -- open and close containers
LIBRARY
library ``libxo''
SYNOPSIS
int
xo_open_container(const char *name);
int
xo_open_container_h(xo_handle_t *handle, const char *name);
int
xo_open_container_hd(xo_handle_t *handle, const char *name);
int
xo_open_container_d(const char *name);
int
xo_close_container(const char *name);
int
xo_close_container_h(xo_handle_t *handle, const char *name);
int
xo_close_container_hd(xo_handle_t *handle);
int
xo_close_container_d(void);
DESCRIPTION
libxo represents to types of hierarchy: ``containers'' and ``lists''. A container appears once under a given parent where a list contains
instances that can appear multiple times. A container is used to hold related fields and to give the data organization and scope. The con-
tainer has no value, but serves to contain other nodes.
To open a container, call xo_open_container() or xo_open_container_h(). The former uses the default handle and the latter accepts a specific
handle.
To close a level, use the xo_close_container() or xo_close_container_h() functions.
Each open call must have a matching close call. If the XOF_WARN flag is set and the name given does not match the name of the currently open
container, a warning will be generated.
Example:
xo_open_container("top");
xo_open_container("system");
xo_emit("{:host-name/%s%s%s", hostname,
domainname ? "." : "", domainname ?: "");
xo_close_container("system");
xo_close_container("top");
Sample Output:
Text:
my-host.example.org
XML:
<top>
<system>
<host-name>my-host.example.org</host-name>
</system>
</top>
JSON:
"top" : {
"system" : {
"host-name": "my-host.example.org"
}
}
HTML:
<div class="data"
data-tag="host-name">my-host.example.org</div>
EMITTING HIERARCHY
To create a container, use the xo_open_container() and xo_close_container() set of functions. The handle parameter contains a handle such as
returned by xo_create(3) or NULL to use the default handle. The name parameter gives the name of the container, encoded in UTF-8. Since
ASCII is a proper subset of UTF-8, traditional C strings can be used directly.
The close functions with the ``_d'' suffix are used in ``Do The Right Thing'' mode, where the name of the open containers, lists, and
instances are maintained internally by libxo to allow the caller to avoid keeping track of the open container name.
Use the XOF_WARN flag to generate a warning if the name given on the close does not match the current open container.
For TEXT and HTML output, containers are not rendered into output text, though for HTML they are used when the XOF_XPATH flag is set.
EXAMPLE:
xo_open_container("system");
xo_emit("The host name is {:host-name}0, hn);
xo_close_container("system");
XML:
<system><host-name>foo</host-name></system>
DTRT MODE
Some users may find tracking the names of open containers, lists, and instances inconvenient. libxo offers a ``Do The Right Thing'' mode,
where libxo will track the names of open containers, lists, and instances so the close function can be called without a name. To enable DTRT
mode, turn on the XOF_DTRT flag prior to making any other libxo output.
xo_set_flags(NULL, XOF_DTRT);
Each open and close function has a version with the suffix ``_d'', which will close the open container, list, or instance:
xo_open_container("top");
...
xo_close_container_d();
Note that the XOF_WARN flag will also cause libxo to track open containers, lists, and instances. A warning is generated when the name given
to the close function and the name recorded do not match.
ADDITIONAL DOCUMENTATION
Complete documentation can be found on github:
http://juniper.github.io/libxo/libxo-manual.html
libxo lives on github as:
https://github.com/Juniper/libxo
The latest release of libxo is available at:
https://github.com/Juniper/libxo/releases
SEE ALSO
xo_emit(3)
HISTORY
The libxo library was added in FreeBSD 11.0.
AUTHOR
Phil Shafer
BSD
December 4, 2014 BSD