Sha256: 1cc52617cb08bfa76425746ab9dfb71e48f71881a53317e0ed2711adf7f630bd
Contents?: true
Size: 1.51 KB
Versions: 3
Compression:
Stored size: 1.51 KB
Contents
require 'concurrent/channel/buffer/base' require 'concurrent/channel/buffer/buffered' module Concurrent class Channel module Buffer # A non-blocking, buffered buffer of fixed maximum capacity. When the # maximum capacity is reached subsequent {#put} and {#offer} operations # will complete but the `put` item will be discarded; no transfer will # occur. class Dropping < Buffered # @!method put(item) # @!macro channel_buffer_put # # When the buffer is full, this method will return `true` # immediately but the item will be discarded. The item will *not* # be placed into the buffer (no transfer will occur). # @!method offer(item) # @!macro channel_buffer_offer # # When the buffer is full, this method will return `true` # immediately but the item will be discarded. The item will *not* # be placed into the buffer (no transfer will occur). # @!method full? # @!macro channel_buffer_full_question # # Always returns `false`. # @!macro channel_buffer_blocking_question # # Always returns `false`. def blocking? false end private # @!macro channel_buffer_full_question def ns_full? false end # @!macro channel_buffer_put def ns_put_onto_buffer(item) buffer.push(item) unless buffer.size == capacity end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems