11-12-2007
Problem regarding serial port and multithreading
hello,
I am creating a application in which I first open the serial port and then create the thread..for reading the data comming through that serial port. from that same thread I create another thread that is write thread means for writing on the serial port...
I am continously polling again and again to check the data comming through that thread
the read thread is working correctly but due to write thread I am getting some different bahavior of the code...sometime segmentation fault...sometimes unwanted result etc....
can any body guide me where I am wrong...why unwanted bahavior of the code....
can Anybody guide me how many threads I can create in a program and where to create Should I use any precuations while writing multithreaded application....
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
We're running SCO Unix Openserver 5.05 and I'm having trouble with serial communication between the com2 serial port and a handheld device. Downloading data from Unix to the handheld works perfectly, but the other way around creates a major problem. I don't know whether it's a buffer overflow or... (1 Reply)
Discussion started by: Aretha
1 Replies
2. Programming
hello,
I am gettin problem while sending and recieving data through seial port...
when I am sending Data then the reciever end is not able to recieve that data .....
Reciever end is running in infinite loop just polling after some time to check that there is data on the port and then again... (9 Replies)
Discussion started by: arunchaudhary19
9 Replies
3. Programming
I am developing an application in c with Linux OS, where a radio modem working at baud rate 9600 will be attached to PC on serial port. More than four such units will be communicating at one time, so there may be jamming or data corruption. Each module will be transmitting Data packets less than... (2 Replies)
Discussion started by: raj8109
2 Replies
4. UNIX for Dummies Questions & Answers
Hello all ,
i have change my system debian linux to freebsd( pcBSD)
all working as well , but the serial does not work correctly.
Under linux the problem does not appears.
my problem is than my serial port does work .
the first step than i have make is look with dmesg if my serial are... (0 Replies)
Discussion started by: pitbac23
0 Replies
5. Solaris
I am working with solaris 9 sparc and I want to connect physical device in serial port but when I am connecting it,It is showing the error window saying--
So can any1 tell me the reason or is there any package I have to add to work with serial port??? (2 Replies)
Discussion started by: smartgupta
2 Replies
6. Programming
i am having some coding problem in c for interfacing the GSM module through serial port. i want to send/receive sms. i have done all the setting for the port and know the AT command to use in this but i am actually having problem in reading and writing from serial port how to handle the signal when... (1 Reply)
Discussion started by: harsh_it
1 Replies
7. Shell Programming and Scripting
Hi,
I have a external board connected to my serial port. I need to execute "shutdown -r now" command when system boot up. When system boots up it requires a username ans password. Then I need to run my command. I can use rc script but that is rebooting system before it asks for username and... (0 Replies)
Discussion started by: charlie.arya
0 Replies
8. Solaris
Hi Everyone,
In my environment, I have few T5220. On the iLOM Management Card, I have both Network and Serial port are cabled, I don't have any issues while I try to connect using Network Management port, but when I try to connect the serial port for the same server which is actually connected... (3 Replies)
Discussion started by: bobby320
3 Replies
9. SCO
How can I determine what process is currently using a serial port? A good bit of google searching hasn't turned up anything useful, but it seems like there has to be a way to do this without too much difficulty.
When I first started looking into this problem, I assumed that when a port was in... (2 Replies)
Discussion started by: jdsnatl
2 Replies
10. Solaris
Hello,
I have an unloaded T5140 machine and want to access the ILOM for the first time and subsequently the network port after that., and then load Solaris 10 the final January 2011 build.
The first part is what confuses me -the cabling.
I am coming from a Windows machine (w/appropriate... (5 Replies)
Discussion started by: joboy
5 Replies
LEARN ABOUT HPUX
pthread_key_delete
pthread_key_create(3T) pthread_key_create(3T)
NAME
pthread_key_create(), pthread_key_delete() - create or delete a thread-specific data key
SYNOPSIS
PARAMETERS
key This is either a pointer to the location where the new key value will to be returned (create function) or the thread-spe-
cific data key to be deleted (delete function).
destructor
Function to be called to destroy a data value associated with key when the thread terminates.
DESCRIPTION
creates a unique thread-specific data key. The key may be used by threads within the process to maintain thread-specific data. The same
key is used by all threads, but each thread has its own thread-specific value associated with key. For each thread, the value associated
with key persists for the life of the thread.
By default, the system allows a process to create up to number of thread-specific data keys. If the process needs more keys, the environ-
ment variable can set the number of keys up to a maximum of 16384. If a value outside the range of and 16384 is specified, or if the envi-
ronment variable is not set at all, the default value is considered. When a new thread-specific data key is created, each thread will ini-
tially have the value NULL associated with the new key. Each time a thread is created, the new thread will have the value NULL for each
thread-specific data key that has been created in the process. A thread may use to change the value associated with a thread-specific data
key. Note: is an opaque data type.
When a thread terminates, it may have non-NULL values associated with some or all of its thread-specific data keys. Typically, these val-
ues will be pointers to dynamically allocated memory. If this memory is not released when the thread terminates, memory leaks in the
process occur. An optional function may be provided at key creation time to destroy the thread-specific data of a terminating thread.
When a thread terminates, the thread-specific data values associated with the thread will be examined. For each key that has a non-NULL
thread-specific data value and a destructor function, the destructor function will be called with the thread-specific data value as its
sole argument. The order in which destructor functions are called is unspecified.
Once all the destructor functions have been called, the thread-specific data values for the terminating thread are examined again. If
there are still non-NULL values in which the associated keys have destructor functions, the process of calling destructor functions is
repeated. If after iterations of this loop there are still some non-NULL values with associated destructors, the system may stop calling
the destructors or continue calling the destructors until there are no non-NULL values. Note: This may result in an infinite loop.
If a destructor function is not desired for key, the value NULL may be passed in the destructor parameter.
The function deletes a thread-specific data key. The key must have been previously created by The thread-specific data values associated
with key are not required to be NULL when this function is called. Using key after it has been deleted results in undefined behavior.
If a destructor function is associated with key, it will not be invoked by the function. Once key has been deleted, any function that was
associated with key is not called when a thread exits. It is the responsibility of the application to free any application storage for
each of the threads using key.
The function can be called from a destructor function.
RETURN VALUE
If successful, and return zero. Otherwise, an error number is returned to indicate the error (the variable is not set).
ERRORS
If any of the following occur, the function returns the corresponding error number:
The value specified by
key is invalid.
The necessary resources to create another thread-specific
data key are not available, or the total number of keys per process has exceeded or an invalid value was specified
with the environment variable
There is insufficient memory available in which to create
key.
For each of the following conditions, if the condition is detected, the function returns the corresponding error number:
The value specified by
key is invalid.
AUTHOR
and were derived from the IEEE POSIX P1003.1c standard.
SEE ALSO
pthread_getspecific(3T), pthread_setspecific(3T).
STANDARDS CONFORMANCE
Pthread Library pthread_key_create(3T)