Sponsored Content
Full Discussion: multithreading on OSX
Top Forums Programming multithreading on OSX Post 302207886 by memoid on Saturday 21st of June 2008 12:04:15 PM
Old 06-21-2008
Hi, thanks for the response.

Quote:
One more question, ( sorry if its silly ) do you check/validate the creation of threads ? Since its running in an infinite loop, conditions might go wrong and outbursting with the maximum number of threads that can be created.
I think something like that was happening when I went down the 'create a new thread every loop' approach, which is why I scrapped that idea and went for the 'infinite loop in the thread, but only run the update function when the variable is set' approach.

I think I've actually identified the problem. I think it was the sleep() function in my thread loop. I understand why I need that if the loop is continuously running and doing heavy stuff, but do I need it in my case?

When I comment out the sleep line (As below), the behaviour looks a lot smoother and correct, maybe because as soon as I set the bHasRunThisFrame flag in the thread instance to false, the update function is called almost immediately (which is what I want), whereas with the sleep() function, maybe there was a delay of upto interval before the update kicked in?.... or something :P Is it bad to not have a sleep function in there?

// run the update function in another thread
Code:
void MSAThread::threadedFunction() {						
	while(isThreadRunning()) {
		if( lock() ){
			if(bAutoLoop || !bHasRunThisFrame) {
				update();
				bHasRunThisFrame = true;
				unlock();
//				ofSleepMillis(interval); 
			} else {
				unlock();
			}
		}
	}
}

 

9 More Discussions You Might Find Interesting

1. Programming

Multithreading in Pro*C

:confused: Hi! I have created a Multhreaded Application in Pro*C (using pthreads) with about 5 Threads running simultaneously. The Application is basically to Update a Centralized Table in Oracle, which updates different rows in the Table (Each Thread updates different rows!). The... (16 Replies)
Discussion started by: shaik786
16 Replies

2. UNIX for Advanced & Expert Users

multithreading in UNIX

Hi, Can you please give me a suitable reference to learn multithreading programming in C in UNIX? Thanks (3 Replies)
Discussion started by: naan
3 Replies

3. Shell Programming and Scripting

Multithreading program

Hi I need to insert 1million records into MySQL database, but it is taking lot of time as there is no bulk insert support. I want to spawn 10 processes which will insert 100k records each parallely. Can somebody help me with a example program to execute this task through shell scripting. (5 Replies)
Discussion started by: sach_roger
5 Replies

4. Programming

MultiThreading using Pthreads

Situation: i have multiple pthread_create calls like this: pthread_create(...., ThreadFunc1,.....); pthread_create(...., ThreadFunc2,.....); . . which i am using to create multiple threads.All the "ThreadFunc<i>" functions are actually calling same function "Receive" of a class using same... (3 Replies)
Discussion started by: Sastra
3 Replies

5. IP Networking

how to do udp broadcast with multithreading

hello to all i want to use multithreading to my UDP broadcast server client program. will anyone help me by proving C code. i am working in fedora. also my requirement is POSIX compliance.please help me..... (0 Replies)
Discussion started by: moti12
0 Replies

6. Programming

how to do udp broadcast with multithreading

hello to all i want to use multithreading to my UDP broadcast server client program. will anyone help me by proving C code. i am working in fedora. also my requirement is POSIX compliance.please help me..... (6 Replies)
Discussion started by: moti12
6 Replies

7. Programming

Multithreading in reading file

Dear all, I am having a huge XML file, as below structure <EMPLOYEE> <RECORD id =aaa> <Salary>99999</Salary> <section>ssss</section> </RECORD> <RECORD id =bbb> <Salary>77777</Salary> <section>ssss</section> </RECORD> </EMPLOYEE> This is a 50 GB file I want to read this file in... (9 Replies)
Discussion started by: arunkumar_mca
9 Replies

8. What is on Your Mind?

Alarm interrupt and multithreading

Hi Friends any know how became a friend in this Android Programming Language (0 Replies)
Discussion started by: ljarun
0 Replies

9. Programming

Help with multithreading

I take this question of the The Linux Programming Interface: A Linux and Unix System Programming page 652 exercise 30.1 I want someone to explain the under line statement because it sounds complex to me couldn't understand anything 30-1 Modify the program (thread_incr.c) so that each loop in... (3 Replies)
Discussion started by: fwrlfo
3 Replies
OSX(1)								     Reference								    OSX(1)

NAME
osx - An SGML to XML converter SYNOPSIS
osx [-CeghnRvx] [-aname] [-Aarchitecture] [-bencoding] [-ccatalog_file] [-ddirectory] [-Ddirectory] [-iname] [-ffile] [-ldtd_file] [-wwarning_type] [-xxml_output_option...] [sysid...] DESCRIPTION
osx converts SGML to XML. osx parses and validates the SGML document contained in and writes an equivalent XML document to the standard output. osx will warn about SGML constructs which have no XML equivalent. Part of an SGML System Conforming to International Standard ISO 8879 -- Standard Generalized Markup Language. An SGML Extended Facilities system conforming to Annex A of International Standard ISO/IEC 10744 -- Hypermedia/Time-based Structuring Language. OPTIONS
The following options are available: -aname, --activate=name Make doctype or linkname name active. -Aname, --architecture=name Parse with respect to architecture name. -bencoding, --encoding=encoding Use the BCTF encoding for output. By default osx uses UTF-8. -csysid, --catalog=sysid Map public identifiers and entity names to system identifiers using the catalog entry file whose system identifier is sysid. -C, --catalogs This has the same effect as in onsgmls(1). -ddirectory, --entity_output_location=directory Place output files in directory. -Ddirectory, --directory=directory Search directory for files specified in system identifiers. This has the same effect as in onsgmls(1). -e, --open-entities Describe open entities in error messages. -Emax_errors, --max-errors=max_errors Give up after max_errors errors. -ffile, --error-file=file Redirect errors to file. This is useful mainly with shells that do not support redirection of stderr. -g, --open-elements Describe open elements in error messages. -h, --help Display a help text and exit. -iname, --include=name This has the same effect as in onsgmls(1). -ldtd-file, --dtd_location=dtd-file Specify that the resulting XML file should conform to the DTD in dtd-file. -n, --error-numbers Show error numbers in error messages. --references Show references in error messages. -R, --restricted This has the same effect as in onsgmls(1). -v, --version Print the version number and exit. -wtype, --warning=type Control warnings and errors according to type. This has the same effect as in onsgmls(1). -xxml_output_option, --xml-output-option=xml_output_option Control the XML output according to the value of xml_output_option as follows: no-nl-in-tag Don't use newlines inside start-tags. Usually osx uses newlines inside start-tags so as to reduce the probability of excessively long lines. id Output attribute declarations for ID attributes. notation Output declarations for notations. ndata Output declarations for external data entities. XML requires these to be NDATA. osx will warn about CDATA and SDATA external data entities and output them as NDATA entities. cdata Use XML CDATA sections for CDATA marked sections and for elements with a declared content of CDATA. comment Output comment declarations. Comment declarations in the DTD will not be output. lower Prefer lower case. Names that were subjected to upper-case substitution by SGML will be folded to lower case. This does not include reserved names; XML requires these to be in upper-case. pi-escape Escape &<> in the contents of processing instructions using the amp, lt and gt entities. This allows processing instructions to contain the string >?, but requires that applications handle the escapes. empty Use the <e/> syntax for element types e declared as EMPTY. attlist Output an ATTLIST declaration for every element specifying the type of all attributes. The default will always be #IMPLIED. report-input-sources Output a processing instruction to report when an input source other than the main file is opened or closed in the instance. Do not report any input source changes in the DTD. report-entities Output a processing instruction to report when an external entity reference has been resolved in the instance. Do not report any entity resolutions in the DTD. no-expand-external Preserve external entities, write a declaration driver file named "extEntities.dtf", and include that file in the instance's internal subset. no-expand-internal Preserve internal entities, write a declaration driver file named "intEntities.dtf", and include that file in the instance's internal subset. no-external-decl Do not include the external entities declaration driver file in the instance's internal subset. no-internal-decl Do not include the internal entities declaration driver file in the instance's internal subset. no-output-outside-outdir When preserving external entities, do not write output files outside the specified output directory ("." by default). In other words, if an external entity's system identifier includes enough instances of ".." to cause osx to write a file outside (above) the output directory, exit (by default osx will issue a warning but will write the file and continue. no-overwrite When preserving internal or external entities, multiple output files will be written. If this option is specified, do not overwrite existing files; instead, attempt to append a number to the end of the original filename to create a unique filename. Exit with an error if too many (100) such files already exist. preserve-case Preserve casing as specified in the DTD for element names; attribute names; attribute values which are token lists. sdata-as-pis When translating SDATA entities (whether expanding them or providing a definition for them in the output's internal subset), express them as processing instructions instead of as general internal entities. Multiple -x options are allowed. SEE ALSO
onsgmls(1), ospam(1), onsgmlnorm(1), ospent(1) AUTHORS
James Clark Author. Ian Castle <ian.castle@openjade.org> Author. COPYRIGHT
OpenJade November 2002 OSX(1)
All times are GMT -4. The time now is 04:41 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy