(size=0)
return BufferedChannel(size)
Returns a bidirectional channel.

    A 0 or None size indicates a blocking channel
    (the ``send`` method will block until a receiver is available,
    and the ``recv`` method will block until a sender is available).

    A positive integer value will return a channel with a buffer.
    Once the buffer is filled, the ``send`` method will block.
    When the buffer is empty, the ``recv`` method will block.

    A negative integer will return a channel that will
    never block when the ``send`` method is called.
    The ``recv`` method will block if the buffer is empty.

    :rtype: goless.channels.GoChannel
Returns a bidirectional channel.
Returns a bidirectional channel .
def chan(size=0):
    """
    Returns a bidirectional channel.

    A 0 or None size indicates a blocking channel
    (the ``send`` method will block until a receiver is available,
    and the ``recv`` method will block until a sender is available).

    A positive integer value will return a channel with a buffer.
    Once the buffer is filled, the ``send`` method will block.
    When the buffer is empty, the ``recv`` method will block.

    A negative integer will return a channel that will
    never block when the ``send`` method is called.
    The ``recv`` method will block if the buffer is empty.

    :rtype: goless.channels.GoChannel
    """
    if not size:
        return SyncChannel()
    if size < 0:
        return AsyncChannel()
    return BufferedChannel(size)
def chan ( size = 0 ) : if not size : return SyncChannel ( ) if size < 0 : return AsyncChannel ( ) return BufferedChannel ( size )