[muscle] Thread-safe queues

Is it possible to use a Queue object from two different threads like this:
 

        Queue<MessageRef> msgQueue

Thread1:
        MessageRef getmsgRef;

        while (1)
                ...
                msgQueue->RemoveHead(getmsgRef);        // Get data from
queue
                ...

Thread2:
        MessageRef putmsgRef;
        while (1)
                ...
                inQueue->AddTail(putmsgRef);            // Put data in to
queue
                ...


I want to send data from one thread to another (producer - consumer )
using a Queue.

Will I have to use EnterCriticalSection() around RemoveHead/AddTail?

I also want to use SendMessageToSessions() in another thread than the one
where my Win32MessageTransceiverThread-loop is running.

I have run into problems doing this and the reason seems to be
multi-threading related.

Best regards,

Paal Grana

Other related posts: