diff options
Diffstat (limited to 'ychat-0.1/thrd.cpp')
| -rw-r--r-- | ychat-0.1/thrd.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/ychat-0.1/thrd.cpp b/ychat-0.1/thrd.cpp new file mode 100644 index 0000000..14a804c --- /dev/null +++ b/ychat-0.1/thrd.cpp @@ -0,0 +1,46 @@ +// class thrd implementation. + +#ifndef THRD_CXX +#define THRD_CXX + +#include "thrd.h" +#include "MUTX.h" +#include "SOCK.h" + +using namespace std; + +thrd::thrd( int i_sock ) +{ +#ifdef VERBOSE + pthread_mutex_lock ( &MUTX::get().mut_stdout ); + cout << "thrd::thrd( " << i_sock << " )" << endl; + pthread_mutex_unlock( &MUTX::get().mut_stdout ); +#endif + + this->i_sock = i_sock; +} + +thrd::~thrd() +{ +#ifdef VERBOSE + pthread_mutex_lock ( &MUTX::get().mut_stdout ); + cout << "thrd::~thrd()" << endl; + pthread_mutex_unlock( &MUTX::get().mut_stdout ); +#endif + + shutdown ( get_sock() , 2 ); +} + +void +thrd::run() +{ +#ifdef VERBOSE_ + pthread_mutex_lock ( &MUTX::get().mut_stdout ); + cout << "thrd::run()" << endl; + pthread_mutex_unlock( &MUTX::get().mut_stdout ); +#endif + + SOCK::get().read_write( i_sock ); +} + +#endif |
