Threads in ACE



  • Hallo,

    welche Variante ist die Beste, um mit ACE threads zu erzeugen.
    Ich habe eine Klasse TCP_Server, die in einem thread Daten senden und in einem Anderen empfangen soll. Die empfangenen Daten möchte ich einfach in einem Vector speichern. Das ganze drum herum habe ich schon fertig. Ich kann Daten empfangen und auf den Stack (Vector) legen, ich kann die Daten auch wieder zurücksenden, allerdings läuft momentan alles in einem Thread und wenn der Server nichts empfängt, blockiert die recieve Methode natürlich, so dass ich keinerlei Daten senden kann.

    Die Klasse sieht wie folgt aus:

    class TCP_Server
    {
    
    public:
    	TCP_Server(int port);
    	~TCP_Server();
    
    	bool Recieve();
    	bool Send(iovec data, int size);
    
    	bool Push(iovec data);
    	bool Pop(iovec *data);
    
    private:
    	ACE_Thread_Mutex mutex;
    	vector<iovec> stack;
    
    	ACE_INET_Addr address;
    	ACE_INET_Addr peer_address;
    	ACE_SOCK_Acceptor acceptor;
    	ACE_SOCK_Stream	peer;
    
    };
    

    Das Mutex benötige ich, damit nicht Daten auf den Stack gelegt und gleichzeitig über Pop abgefragt werden.

    Gruß Paddy


Anmelden zum Antworten