int run_main (int, ACE_TCHAR *[]) { ACE_START_TEST (ACE_TEXT ("Timeprobe_Test")); ACE_TIMEPROBE ("Starting Test"); for (int i = 0; i < 3; i++) { work (i); ACE_TIMEPROBE (EVENT_ZERO + i); } ACE_TIMEPROBE ("Ending Test"); ACE_TIMEPROBE_PRINT; ACE_END_TEST; return 0; }
int ACE_Message_Block::init_i (size_t size, ACE_Message_Type msg_type, ACE_Message_Block *msg_cont, const char *msg_data, ACE_Allocator *allocator_strategy, ACE_Lock *locking_strategy, Message_Flags flags, unsigned long priority, const ACE_Time_Value &execution_time, const ACE_Time_Value &deadline_time, ACE_Data_Block *db, ACE_Allocator *data_block_allocator, ACE_Allocator *message_block_allocator) { ACE_TRACE ("ACE_Message_Block::init_i"); ACE_FUNCTION_TIMEPROBE (ACE_MESSAGE_BLOCK_INIT_I_ENTER); this->rd_ptr_ = 0; this->wr_ptr_ = 0; this->priority_ = priority; #if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS) this->execution_time_ = execution_time; this->deadline_time_ = deadline_time; #else ACE_UNUSED_ARG (execution_time); ACE_UNUSED_ARG (deadline_time); #endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */ this->cont_ = msg_cont; this->next_ = 0; this->prev_ = 0; this->message_block_allocator_ = message_block_allocator; if (this->data_block_ != 0) { this->data_block_->release (); this->data_block_ = 0; } if (db == 0) { if (data_block_allocator == 0) ACE_ALLOCATOR_RETURN (data_block_allocator, ACE_Allocator::instance (), -1); ACE_TIMEPROBE (ACE_MESSAGE_BLOCK_INIT_I_DB_ALLOC); // Allocate the <ACE_Data_Block> portion, which is reference // counted. ACE_NEW_MALLOC_RETURN (db, static_cast<ACE_Data_Block *> ( data_block_allocator->malloc (sizeof (ACE_Data_Block))), ACE_Data_Block (size, msg_type, msg_data, allocator_strategy, locking_strategy, flags, data_block_allocator), -1); ACE_TIMEPROBE (ACE_MESSAGE_BLOCK_INIT_I_DB_CTOR); // Message block initialization may fail, while the construction // succeds. Since ACE may throw no exceptions, we have to do a // separate check and clean up, like this: if (db != 0 && db->size () < size) { db->ACE_Data_Block::~ACE_Data_Block(); // placement destructor ... data_block_allocator->free (db); // free ... errno = ENOMEM; return -1; } } // Reset the data_block_ pointer. this->data_block (db); return 0; }