On this page:
connection
connection-manager?
start-connection-manager
new-connection
kill-connection!
adjust-connection-timeout!

5.2 Connection Manager

This module provides functionality for managing pairs of input and output ports. We have plans to allow a number of different strategies for doing this.

struct

(struct connection (timer i-port o-port custodian close?)
    #:extra-constructor-name make-connection)
  timer : timer?
  i-port : input-port?
  o-port : output-port?
  custodian : custodian?
  close? : boolean?
A connection is a pair of ports (i-port and o-port) that is ready to close after the current job if close? is #t. Resources associated with the connection should be allocated under custodian. The connection will last until timer triggers.

procedure

(connection-manager? x)  boolean?

  x : any/c
Determines if x is a connection manager.

procedure

(start-connection-manager)  connection-manager?

Runs the connection manager (now just the timer manager).

procedure

(new-connection cm    
  timeout    
  i-port    
  o-port    
  cust    
  close?)  connection?
  cm : connection-manager?
  timeout : number?
  i-port : input-port?
  o-port : output-port?
  cust : custodian?
  close? : boolean?
Constructs a connection with a timer with a trigger of timeout that calls kill-connection!.

procedure

(kill-connection! c)  void

  c : connection?
Closes the ports associated with c, kills the timer, and shuts down the custodian.

procedure

(adjust-connection-timeout! c t)  void

  c : connection?
  t : number?
Calls increment-timer! with the timer behind c with t.