# ACE_LOCK_SOCK_Acceptor< ACE_LOCK > Class Template Reference

Specialize <ace_sock_acceptor> to lock around <accept>;. More...

`#include <LOCK_SOCK_Acceptor.h>`

Inheritance diagram for ACE_LOCK_SOCK_Acceptor< ACE_LOCK >:

[legend]
Collaboration diagram for ACE_LOCK_SOCK_Acceptor< ACE_LOCK >:

[legend]
List of all members.

## Public Member Functions

int | accept (ACE_SOCK_Stream &new_stream, ACE_Addr *remote_addr=0, ACE_Time_Value *timeout=0, int restart=1, int reset_new_handle=0) const
| Accept the connection under the control of the <ace_lock>.
ACE_LOCK & | lock (void)
| Return a reference to the lock.

## Protected Attributes

ACE_LOCK | lock_
| Type of locking mechanism.

## Detailed Description

### template<class ACE_LOCK>
class ACE_LOCK_SOCK_Acceptor< ACE_LOCK >

Specialize <ace_sock_acceptor> to lock around <accept>;.

This class is necessary since some OS platforms (e.g., Solaris 2.5) do not allow multiple threads/processes to simultaneously call <accept> on the same listen-mode port/socket. Thus, we need to protect against multiple concurrent accesses by using the appropriate type of lock.

## Member Function Documentation

template<class ACE_LOCK>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL int ACE_LOCK_SOCK_Acceptor< ACE_LOCK >::accept | ( | ACE_SOCK_Stream & | new_stream,
|  | ACE_Addr * | remote_addr = `0`,
|  | ACE_Time_Value * | timeout = `0`,
|  | int | restart = `1`,
|  | int | reset_new_handle = `0`
| ) | const

| Accept the connection under the control of the <ace_lock>. Reimplemented from ACE_SOCK_Acceptor.

template<class ACE_LOCK>
ACE_LOCK & ACE_LOCK_SOCK_Acceptor< ACE_LOCK >::lock | ( | void |  | ) |

| Return a reference to the lock.

## Member Data Documentation

template<class ACE_LOCK>
ACE_LOCK ACE_LOCK_SOCK_Acceptor< ACE_LOCK >::lock_ `[protected]`

| Type of locking mechanism.

The documentation for this class was generated from the following files:

- LOCK_SOCK_Acceptor.h
- LOCK_SOCK_Acceptor.cpp