Class: Sequel::Postgres::Adapter
- Inherits:
-
Object
- Object
- Sequel::Postgres::Adapter
- Defined in:
- lib/midori-contrib/sequel/postgres.rb
Overview
Midori Extension of sequel postgres through meta programming
Instance Method Summary collapse
-
#execute_query(sql, args) ⇒ Array
Call a sql request asynchronously.
Instance Method Details
#execute_query(sql, args) ⇒ Array
Call a sql request asynchronously
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/midori-contrib/sequel/postgres.rb', line 14 def execute_query(sql, args) @db.log_connection_yield(sql, self, args) do if POSTGRES_SOCKETS[self].nil? POSTGRES_SOCKETS[self] = IO::open(socket) end socket_object = POSTGRES_SOCKETS[self] await(Promise.new do |resolve| count = 0 EventLoop.register(socket_object, :rw) do begin if (count == 0) # Writable unless is_busy send_query(sql) count += 1 end else # Readable EventLoop.deregister(socket_object) resolve.call(get_result) end # For extra errors # :nocov: rescue => e resolve.call(PromiseException.new(e)) # :nocov: end end end) end end |