-
-
Save mrb/5630865 to your computer and use it in GitHub Desktop.
Revisions
-
mrb renamed this gist
May 22, 2013 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
rday revised this gist
Aug 28, 2012 . 1 changed file with 9 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -5,14 +5,22 @@ type ConnectionPoolWrapper struct { conn chan interface{} } /** Call the init function size times. If the init function fails during any call, then the creation of the pool is considered a failure. We call the same function size times to make sure each connection shares the same state. */ func (p *ConnectionPoolWrapper) InitPool(size int, initfn InitFunction) error { // Create a buffered channel allowing size senders p.conn = make(chan interface{}, size) for x := 0; x < size; x++ { conn, err := initfn() if err != nil { return err } // If the init function succeeded, add the connection to the channel p.conn <- conn } p.size = size -
rday created this gist
Aug 28, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,30 @@ type InitFunction func() (interface{}, error) type ConnectionPoolWrapper struct { size int conn chan interface{} } func (p *ConnectionPoolWrapper) InitPool(size int, initfn InitFunction) error { p.conn = make(chan interface{}, size) for x := 0; x < size; x++ { fmt.Println("Calling init function ", x) conn, err := initfn() if err != nil { return err } p.conn <- conn } p.size = size return nil } func (p *ConnectionPoolWrapper) GetConnection() interface{} { return <-p.conn } func (p *ConnectionPoolWrapper) ReleaseConnection(conn interface{}) { p.conn <- conn } var dbPool = &ConnectionPoolWrapper{}