AnsweredAssumed Answered

How to get more information about a blocked Semaphore?

Question asked by Sumetaso on Jul 16, 2010
Latest reply on Jul 19, 2010 by Sumetaso

Hi all,

 

Can anyone give me any clues about how to gain more information about a locked Semaphore?

For example: Where is it located in the source?

 

My scenario:

VisualDSP++ V5.0 update 8

ADSP-BF561

CoreA : VDK application with LWIP.

CoreB: Standard application( interface between cores is shared memory regions for commands and data)

 

What I am trying to do:

In CoreA I have 2 threads using sockets. Each thread creates it's own sockets.

I have a PC application that connects to both sockets.

 

What I know:

Thread 1 can always communicate over the socket.

Thread 2 can set up an accept socket and get a new connection to a socket.

Thread 2 gets blocked later on "Semphore ID :18" when calling "write" on it's "new" socket.

"Semaphore ID: 18" is created when I create Thread2.

 

And when Thread2 gets blocked, then all type of communition over sockets is impossible, only thing I can do is restart the applications.

 

And I have to say that the "VDK Status" does not really say much.

Thread2:

SemaphoreBlocked(ID:18)

(Too much to write, but LastErrorType is kNoError, and stack usage is 186 out of 300)

 

Semaphore(ID: 18):

Period: 0

Max Count: 4294967295

Count: 0

Pending Threads:

- Thread(ID: 5)(kThread2_threadtype)

 

Any ideas about how I can get any further with tracking what I have  messed up?

 

And a slightly off-topic question.

Is there any "wishlist" about features for VDSP++ that accepts suggestions?

 

Reagrds,

Alf Nilsson

Outcomes