Programming :: Multithreading Application Hangs
May 5, 2009
I have developed a proprietary multithreaded application using Qt library version 4.2.1 on RHEL 4 platform. The application communicates with different external interfaces using serial communication using well defined protocols. For each system I have a thread that handles data acquisition and processing, it sets an update flag which is read by the GUI thread to update GUI after specified number of seconds. The incoming data from external systems is processed and updated on GUI at certain intervals. Each system update rate on GUI is different. Generally it is 1 second. Their rate of sending data is different and is generally 1Hz, 5 Hz and 10 Hz. For systems with string data I have no issues. But some systems send raw data and I have to process every byte of the entire packet, for which I have to use for loops. Now my problem is if I keep the update rate of GUI for such systems less than a fixed number of seconds (which I have to calculate by hit and trial) the application hangs after sometime. I have tested this system exlusively by switching of all other systems and it hangs standalone.
This leads me to conclude that timing of GUI update is what is causing the application to hang. Also I read somewhere on the net that in multithreading application timers play an important role and slight variation in timing can lead to hung applications. As of now I have kept 5 seconds as the GUI update time and app runs fine. Can somebody suggest something else which might be the cause?Note that I have used mutexes, wait conditions and all necessary tools which are used in multithreading app. But it is only the timer on which I could pin down the issue.
View 6 Replies
ADVERTISEMENT
Jan 4, 2011
Im implementing a chat application using Jabber/XMPP and gloox framework which should send and receive messages concurrently in Ubuntu Linux.
The problem faced is both the threads are created and pthread_join( ) is called for both.The iSend thread is scheduled first but gets suspended at cin. Once the recv( ) function is called, which runs in iRecv thread, the recv call back function handleMessage( ) is called. However the control never shifts back to the iSend thread which should call SendMessage( ) function.
View 1 Replies
View Related
Jul 15, 2010
I was looking around on Wikipedia, and ran across the UltraSPARC T2 processor. This is a processor with 8 cores (8 physical processors) and 8 threads per core (64 logical processors!)I'm aware of Intel's Hyper-Threading and other technologies, and I know collisions between the threads have the possibility of decreasing the processor's throughput.From what I know, the O(1) scheduler (and surely the current CFS scheduler) is aware of Hyper-Threading, and is careful with processor affinity for threads (mainly, it tries to fill every physical processor before giving any multiple threads, and it tries to keep processes that much move between logical processors on the same physical processor.)
However, although that certainly helps somewhat, I believe the largest gain can come if the compiler is allowed to re-arrange instructions, so that more than two threads can be run at once without collisions in one physical processor. For this to happen, I believe we'd need to come up with a new executable format that can store multiple threads in one file, so the scheduler can schedule them as one block.For example, with the current scheduler and executable formats, the UltraSPARC would appear as 64 logical processors. However, if we consider a system that consists entirely of thread-aware systems, it might look at it as 8 logical processors, and schedule eight processes at a time. Since only one process would exist on each physical processor, the compiler would be able to optimize and significantly reduce resource contention (which I mention below.)
We can look at one physical processor with 8 threads of execution (or any number >2.) If you run 8 different processes, as Linux would currently do, there would likely be a lot of resource contention. My guess is that most of the time, several threads would be waiting for the unit they need to become available. I feel that this is supported because I saw a number from Sun (I forgot where) that the correct optimization settings on their compiler can yield a 300% speedup, on a practical workload.Is there any infrastructure available for Linux that supports processors like the UltraSPARC T2, that have a high number of hardware threads per core? Also, I know this would be a large task to implement, and there would be hurdles (how do you mix multithreaded processes with single-threaded processes on one machine?), and I am wondering if others think there would be enough benefit to justify the effort.
View 1 Replies
View Related
Apr 6, 2011
ll the time for me and when they do, I can't do anything.The typical case for me:Trying to run something, application hangs.The screen is either black or an image of the previous used app (aka not responding).This is when i try all sorts of key-combinations to get out of it to either get to a console or some other way to shut the crashed application down, but since the application is crashed and all the keys are overrided (either that or not responding), I cant do anything.Things I've tried pressing:
ctrl+alt+delete (you never know if something useful will happend (: )
ctrl+alt+f1 (I actually thought this would work, but no)
alt+tab (this was my second hope!)
[code]....
View 5 Replies
View Related
Jan 19, 2011
we have new dedicated servers to run our application server oracle developer forms 6i, remember we have not install anything other the rhel 5.5 64 bits, since it is BIN files to execute from we have problem encounter, we create a new share/premia where our oracle forms 6i and report 6i BIN or say executables there, and it work fine we made setup. but while users are working every all of sudden it hang and says not responsing.
View 1 Replies
View Related
Dec 18, 2009
I am facing the following issue. My application runs perfectly in red hat linux(32bit, 64bit physical m/c and 32 bit vmWare m/c) and in one version of centOS(32bit physical m/c - don't remember the version:Sorry). However when I am running the same application in CentOS 5.4 (64bit version) I face the following issues -
a. the application gets stuck in the conditional wait even though the signal is sent after the application has moved to conditional wait. b. vsftpd service start fails from within the application even though the service starts and stops peroperly from console.
View 6 Replies
View Related
May 27, 2011
Until now I have been running a single threaded cpu at single channel speed but yesterday I bought a 3.2 gig p4 for 20 bucks. It has hyperthreading and an 800 mhz fsb which supports dual channel speeds on the chipset. It hasn't arrived yet so I haven't put it in the system but what I would like to know is whether 11.4 work properly with these changes, and will it detect and implement them properly or will I need to reinstall it?
View 5 Replies
View Related
Jan 14, 2010
When I start my shell it hangs (somehow, it's being put to sleep) and I always have to control-cancel the shell before using it. Anyone know of a way to figure out what gets started on a typical shell session?
View 1 Replies
View Related
Jan 19, 2010
So I wrote a function in a class that logs the user in:
public function UserLogIn($username,$password){
if (!isset($username) || !isset($password)) {
header(Location: ../dev/index.php);
}
[Code]....
I've tested it on Linux (Ubuntu and Debian) and it works perfectly on Firefox 3 and Opera 9.5 on those two distributions. On Mac however, it hangs on both Firefox 3 and Safari. I have also tested it on Windows using Internet Explorer 7 and Firefox 3. why it hangs on Mac?
View 1 Replies
View Related
Nov 29, 2010
I have a problem with programming serial port lines. my issue is that i must toggle and read single lines like rts and cts. but my program stops at the line when i open the port. here my sampe:
Code:
int port;
int i;
port = open("/dev/ttyS0", O_RDWR);
[Code].....
when I start the program it hangs on the open-function. I have tried ps with grep for ttyS0 but there is nothig found. Why hangs this function and gives me no error?
If I use ttyS1, it works. where is the problem and why I can't get an error?
target is an embedded system with busybox.
View 2 Replies
View Related
Oct 28, 2010
A thread-aware version of gdb receives a system notification when a thread starts in the app it is debugging. GTK+ has hidden threads associated with loading icons into menus. So trying to debug a GTK+ program, even one that is apparently single-threaded, can produce a deadlock between gdb, the app and XWindows. The app (actually GdkPixbufLoader) grabs the focus, the mouse and the keyboard and then starts a thread when a menu is opened. If gdb has trouble with threads, it leaves the app blocked but still holding the mouse, et. al. Then you can't talk to gdb or any other GUI interface. To make gdb happy, all GTK+ apps need to be linked with -pthread, if you have the source. If not, gdb cannot be used. In order to break the deadlock, you need a non-GUI shell. If your /etc/inittab starts agetty, mingetty, or the like, and you can get to it with <CRTL><ALT><F3...F6>, you can do a kill -KILL <pid> on the offending app, recover and then go back to XWindows with <CTRL><ALT> <F1/F2>. Otherwise it's reboot time.
View 3 Replies
View Related
May 16, 2014
The script below doesn't stop sickbeard, and just hangs. I really can't figure out why.
#!/bin/sh
### BEGIN INIT INFO
# Provides: SickBeard
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
[Code] ...
View 1 Replies
View Related
Jul 23, 2011
My program is creating 4 threads per transaction. Threads doing nothing but simply sleeping.
Now, when transaction ends, I want to wake up all the threads from sleeping. For this I am using pthread_kill() to wake up the threads using signal SIGUSR2.
Problem raises when I put more transactions(eg. 100 trans). My process gets hangup.
View 3 Replies
View Related
Sep 29, 2010
I want to ask whether there is an application to program the AVR on Linux. if there is what the name of his application? and where I can get it
besides, I also want to install the supporting applications to make PCBs, in windows I used mangunakan Altium.
if for linux what is the name of his application?
View 1 Replies
View Related
Jul 16, 2010
I'm writing a Bash script to take IPTC keywords from a text file and write them, via Exiv2, to several (first batch is 100) JPEG files in a single directory. The script has one while loop inside another while loop, both terminated, but I'm pretty sure that's not my problem. I think it's how I'm incrementing the "counter" variable, although it could also be the method of parsing the text lines from the file (using cut with delimiters that have worked fine in simpler scripts).
Here's the code as I've worked it up to this point.
Code:
And yes, "keywords" checks out in Crimson Editor, Emacs GUI and nano as an ASCII file with UNIX line endings. No issues on that score.
Feeding each line consecutively into a terminal (excepting the exiv2 command) works fine: each variable echoes with the part of the text line used as a variable value as it should, even when the b variable is incremented the quick&dirty way (up arrow three commands and hit enter).
Running the above script in eval mode (sh -x) stalls after setting the b variable to one and reading in the first line of text. I'd like to know why. I'd also like some advice on another reliable method of parsing the read-in lines.
View 14 Replies
View Related
Jan 3, 2009
I'm trying to package a Qt application using debuild. However, I can't figure out how to make qmake generate a correct Makefile.
The main problem is that the binary doesn't get put into ./usr/bin inside the .deb.
So dh_shlibdeps always fails and I get the following:
Code: Select alldpkg-gencontrol: warning: unknown substitution variable ${shlibs:Depends}
dpkg-gencontrol: warning: unknown substitution variable ${misc:Depends}
The resulting debian package then has an empty "depends" field and no binary.
I used the Qt Hello World example application to start.
I changed debian/rules (generated by dh_make) so that it runs qmake as follows:
Code: Select all#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
[code]....
View 6 Replies
View Related
May 13, 2010
am using a PC104 with Linux and i need to control it with a controller that is connected via RS-232 or USB port. I need to launch one or more application some specific message come through RS-232 port. Is that doable? If yes how? I am beginner with C++ on Linux so i don't really know specif libraries. If possible i would like to use pure C and not C++.
View 4 Replies
View Related
Aug 1, 2010
I want to write an application with an interface similar to those used in non-GUI linux installation programs. It is not really a pseudo-graphic. Does anybody knows an appropriate library?
View 2 Replies
View Related
Aug 23, 2010
i need to debug a application which is using many threads. i am using eclipse with GDB debugger but it is not possible to debug it since it has a lot of different threads and i can not not debug it as wre debug in case of single thread(main) . So i would like to know, is there a way to debug such an application, if there is some tutorial that would be nice to know.
View 8 Replies
View Related
Nov 28, 2010
I'm trying to learn how to cross-compile libraries (static and shared) and executables for the Blackfin + uClinux environment.At this point, I can successfully compile a stand-alone "Hello, world" but fail when trying to add a (static) library to the mix.Here's the source code I wrote:
Code:
#========== bar.h
void mytestfunc(void);
#========== bar.c
#include <stdio.h>
[code]...
Googling for this returns talks about "name mangling", but I don't know if this is what it is, and how to change the source/command to solve it.
View 1 Replies
View Related
May 10, 2011
My users need to run an application which was build with newer GLIBC_2.11, while my system only gets GLIBC_2.4. It shows error "cannot find libc.so.6 GLIBC_2.11" whenever I run it. I cannot upgrade the system, so I have tried building Glibc 2.11 (for example:/opt/glibc-2.11) to another directory, but when I point LD_LIBRARY_PATH to /opt/glibc-2.11, I cannot run any commands because of error invalid LFS ABI. I also tried using LD_PRELOAD, but it does not work. Please help me, how can I fix this problem.
View 3 Replies
View Related
Jun 8, 2011
I'm developping a C# app in Windows using VS2010. It has one form and communicates as a client with a server.A receive thread displays incoming data while buttons and a timer send data. All workingThe form has a button that calls the below method to disconnect from the server.
Code:
public bool disconnect()
{
[code]...
View 2 Replies
View Related
Jan 2, 2010
Is there a somewhat straightforward way to get the name or pid of the application that is under the mouse's cursor? What I'm trying to do: This is just a "what if" at this point, I would like to run some script that would obtain the name/pid of any application that the mouse cursor is on, and use xte to assign different functions to different mouse buttons. For instance, assign a given button the Forward or Back function when the cursor is on a browser, but assign a scroll-left or scroll-right to the same button when it's on a spreadsheet. Is there any way to accomplish this, say, in a script that I could run at startup as a background process?
View 4 Replies
View Related
Mar 29, 2009
I never had to use anything more than -l , -lm , -c ,-o.It was only through dev documentation that I came across glib. Now I want to to compile and link a program with glib.
View 5 Replies
View Related
Mar 30, 2009
I want read the log messages to my 'c' application , i am using the fedora core 8 operating system , how to read the system log messages(syslog) through my application.
View 3 Replies
View Related
Jul 21, 2010
i have made a small program to find the md5 checksum of a string.i am using xshell to compile the program.
Code:
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#include <md5.h>
[Code]...
View 4 Replies
View Related
Jun 24, 2010
1. How to use the the font in the application? Any code example?
2. How to install the font for linux?
3. How to make the installed font as the system default font?
4. How font/text is rendered in linux? Any inforamation about the font system in linux?
View 14 Replies
View Related
Sep 11, 2009
I seed a suggesting related asychron io. I'm write a program which use completion ports, but wandor how avoiding loops like for(; below...i.e I want parse proto with count in first and then computing some quantity of pieces. how that make with aio?
Code:
View 6 Replies
View Related
Jun 19, 2011
I want to develop a system that converts speech to text in C sharp in Windows 7 platform.I haven't enough idea about this one.From google that,there will be grammerbuliding.Moreover i think,there will be a problem of spelling words correctly. from where i will start or which steps i should follow to develop the system??
View 1 Replies
View Related
Jul 7, 2010
I'm trying to write a simple, console based application in linux, in c++. I know how to start in Eclipse and I have some experience in c++ from Windoze. I would like to ask, if there is some tutorial available on writing console apps. I mean, I know from using linux that there are two conventions on using parameters in command line (-v and --version for example).
View 2 Replies
View Related