void* Thread_Per_Connection_Logging_Server::run_svc(void *arg)
{
    ACE_Auto_Ptr<Thread_Args> thread_args(static_cast<Thread_Args*>(arg));
    thread_args->this_->handle_data(&thread_args->logging_peer_);
    thread_args->logging_peer_.close();
    return 0;
}
Пример #2
0
ACE_THR_FUNC_RETURN ChatServer::run_svc(void *arg)
{
	auto_ptr<Thread_Args> thread_args(static_cast<Thread_Args *> (arg));

	thread_args->this_->handle_data(&thread_args->m_chat_peer);
	thread_args->m_chat_peer.close();
	return 0;    // Return value is ignored
}
ACE_THR_FUNC_RETURN Thread_Per_Connection_Logging_Server::run_svc (void *arg)
{
  auto_ptr<Thread_Args> thread_args (static_cast<Thread_Args *> (arg));

  thread_args->this_->handle_data (&thread_args->logging_peer_);
  thread_args->logging_peer_.close ();
  return 0;    // Return value is ignored
}
int Thread_Per_Connection_Logging_Server::handle_connections()
{
    ACE_Auto_Ptr<Thread_Args> thread_args(new Thread_Args(this));

    if (acceptor().accept(thread_args->logging_peer_) == -1)
        return -1;

    if (ACE_Thread_Manager::instance()->spawn(
            Thread_Per_Connection_Logging_Server::run_svc,
            static_cast<void*>(thread_args.get()),
            THR_DETACHED | THR_SCOPE_SYSTEM) == -1)
        return -1;

    thread_args.release();
    return 0;
}
int
Thread_Per_Connection_Logging_Server::handle_connections ()
{
  auto_ptr<Thread_Args> thread_args (new Thread_Args (this));

  if (acceptor ().accept (thread_args->logging_peer_) == -1)
    return -1;
  if (ACE_Thread_Manager::instance ()->spawn (
                   // Pointer to function entry point.
                  Thread_Per_Connection_Logging_Server::run_svc,
                   // <run_svc> parameter.
                  static_cast<void *> (thread_args.get ()),
                  THR_DETACHED | THR_SCOPE_SYSTEM) == -1)
    return -1;
  thread_args.release ();   // Spawned thread now owns memory
  return 0;
}
Пример #6
0
int ChatServer::handle_connections()
{
	if (DLOG)
	{
		printf("\n");
		Util::log("[ChatServer::handle_connections] START\n");
	}

	auto_ptr<Thread_Args> thread_args(new Thread_Args(this));

	if (acceptor().accept(thread_args->m_chat_peer) == -1)
		return -1;
	if (ACE_Thread_Manager::instance()->spawn(
		// Pointer to function entry point.
		ChatServer::run_svc,
		// <run_svc> parameter.
		static_cast<void *> (thread_args.get()),
		THR_DETACHED | THR_SCOPE_SYSTEM) == -1)
		return -1;
	thread_args.release();   // Spawned thread now owns memory

	if (DLOG) Util::log("[ChatServer::handle_connections] END\n");
	return 0;
}