00001 #include <j2k/Fred/Standard.hpp>
00002 #include <j2k/nto/MsgThread.hpp>
00003 #include <j2k/nto/TimerPulse.hpp>
00004 #include <j2k/nto/Message.hpp>
00005
00006 class T1 : public MsgThread
00007 {
00008 public:
00009
00010 int id;
00011 pid_t p;
00012
00013 T1() : MsgThread( "T1" )
00014 {
00015 p = pid;
00016 }
00017
00018 void run()
00019 {
00020 int i = 100;
00021 while( 1 )
00022 {
00023 printf( "1" );
00024 Message m( i++ );
00025 send( "T2", m );
00026 Message m2 = receive( id );
00027
00028 printf( "[%d|%d]", m.getNumber(), m2.getNumber() );
00029 }
00030 }
00031 };
00032
00033 class T2 : public MsgThread
00034 {
00035 public:
00036
00037 pid_t p;
00038
00039 T2() : MsgThread( "T2" )
00040 {
00041 p = pid;
00042 }
00043
00044 int id;
00045
00046
00047 void run()
00048 {
00049 int i = 1000;
00050 while( 1 )
00051 {
00052 printf( "2" );
00053 Message m( i++ );
00054 send( "T1", m );
00055 Message m2 = receive( id );
00056
00057 printf( "[%d|%d]", m.getNumber(), m2.getNumber() );
00058 }
00059 }
00060 };
00061
00062 int main()
00063 {
00064 T1 a;
00065 T2 b;
00066
00067 a.start();
00068 b.start();
00069
00070 a.id = (int)b.p;
00071 b.id = (int)a.p;
00072
00073 a.join();
00074 b.join();
00075
00076 for(;;) {
00077 printf( "M" );
00078 sched_yield();
00079 }
00080
00081 return 0;
00082 }