Thread issue - sure can use some help
Thread issue - sure can use some help
- Subject: Thread issue - sure can use some help
- From: John Draper <email@hidden>
- Date: Thu, 06 Apr 2006 03:23:45 -0700
Hi,
I've also CC'ed this to both Core Audio and the Multi-processing list,
in the
hopes that someone can give me a clue on what's going on.
First the forplay...
* Using a C++ library (JRTPLIB) a real time transport for VIOP
packets, which
uses it's own thread. This thread is not an NSThread, and I have my
application
running in Multi-processing mode, so I can make Autorelease pools
for this thread
and others.
* This thread calls methods in MTCoreAudio, an Obj C wrapper around the
lower level Core Audio. This is available on the net from 3rd party.
* Program will either hang up in the Mutex.lock() part of the thread in
question above, or crash....
Crash log here....
Thread 6 Crashed:
0 libobjc.A.dylib 0x908311e8 objc_msgSend + 0x8
1 com.apple.Foundation 0x90a06320 -[NSConcreteMutableData
appendData:] + 0x2c
2 com.apple.myCocoaApp 0x00023598 -[VIOPAudioMonitor
_flushDataForConverter:] + 0x100 (VIOPAudioMonitor.m:251)
3 com.apple.myCocoaApp 0x00023398 -[VIOPAudioMonitor
flushOutput:] + 0x7c (VIOPAudioMonitor.m:231)
4 com.apple.myCocoaApp 0x000237b4 -[VIOPAudioMonitor
queueAudioSampleData:] + 0x7c (VIOPAudioMonitor.m:274)
5 com.apple.myCocoaApp 0x00037f68 -[AudTransport
processIncomingData:] + 0x8c (AudTransport.m:76)
6 com.apple.myCocoaApp 0x0000c6ec -[RTPSessionBridge
incomingPacket:ofLength:] + 0x80 (RTPSessionBridge.mm:183)
7 com.apple.myCocoaApp 0x0000b788
MyRTPSession::ProcessRTPPacket(RTPSourceData const&, RTPPacket const&) +
0x74 (myRTPSession.cpp:84)
8 com.apple.myCocoaApp 0x0000b6a0
MyRTPSession::OnPollThreadStep() + 0x17c (myRTPSession.cpp:55)
9 com.apple.myCocoaApp 0x001b5820 RTPPollThread::Thread() +
0x254 (rtppollthread.cpp:158)
10 com.apple.myCocoaApp 0x001c9650 JThread::TheThread(void*) +
0xac (jthread.cpp:152)
11 libSystem.B.dylib 0x900246e8 _pthread_body + 0x28
Since none of this stuff is secret (It's a SIP phone for the Mac), I
don't mind sharing the code
with anyone willing to help me out.
The SIP phone works now, but ONLY for about a minute then either locks
up or crashes, depending on
the phase of the moon, or topical strata :-)
The JThread basically receives UDP Packet data via the Posix "recvfrom"
API in "OnPollThreadStep"
which eventually calls ProcessPacket.
Through process elimination, I selectively commented out portions of the
code to try and
determine which one causes it to hang, and determined the
"[VIOPAudioMonitor queueAudioSampleData:]"
method is the culprit.
Can someone please tell me how I can make this code "Thread safe" when
it calls something
I know nothing about (MTCoreAudio framework).... the "AudTransport" is
a delegate of the
VIOPAudioMonitor, which is my AudioMonitor Delegate. Like I said, if
anyone is willing to help
me on this, I can send you the project, if you still use X-Code
1.5. yea - I know, I should
upgrade, and eventually hope to do so soon, but not until I can afford
to get a better machine
that will support OS-X 10.4...
I don't have the disk space to upgrade to 10.4 right now.
Can someone help me please?
John
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden