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

9.2 Connection Manager

 (require web-server/private/connection-manager)

"private/connection-manager.ss" provides functionality for managing pairs of input and output ports. We have plans to allow a number of different strategies for doing this.

(struct

 

connection

 

(timer i-port o-port custodian close?))

  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.

(start-connection-manager parent-cust)  void

  parent-cust : custodian?

Runs the connection manager (now just the timer manager) will parent-cust as the custodian.

(new-connection

 

timeout

 

 

 

 

 

 

i-port

 

 

 

 

 

 

o-port

 

 

 

 

 

 

cust

 

 

 

 

 

 

close?)

 

 

connection?

  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!.

(kill-connection! c)  void

  c : connection?

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

(adjust-connection-timeout! c t)  void

  c : connection?

  t : number?

Calls reset-timer! with the timer behind c with t.