module IO::Stream::Writable

def puts(*arguments, separator: $/)

@parameter separator [String] The separator to append after each argument.
@parameter arguments [Array] The arguments to write to the stream.
Write arguments to the stream followed by a separator and flush immediately.
def puts(*arguments, separator: $/)
	return if arguments.empty?
	
	@writing.synchronize do
		arguments.each do |argument|
			@write_buffer << argument << separator
		end
		
		self.drain(@write_buffer)
	end
end