Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Moved suspension module into separate compilation unit, isolating disabled interrupts |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
72a7ba057e8d0a461e0c8b82b9a0519f |
User & Date: | murphy 2015-05-04 09:15:36.445 |
Context
2015-05-04
| ||
09:22 | Use TweetNaCl instead of Cryptlib for suspension encapsulation check-in: 1c90f0c41c user: murphy tags: trunk | |
09:15 | Moved suspension module into separate compilation unit, isolating disabled interrupts check-in: 72a7ba057e user: murphy tags: trunk | |
08:03 | Use letrec* in make-at-reader+table to ensure correct sequencing of operations check-in: 01fdd8217d user: murphy tags: trunk | |
Changes
Changes to suspension.scm.
︙ | ︙ | |||
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | ;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. (declare (disable-interrupts)) (define error-output ##sys#standard-error) (define standard-output ##sys#standard-output) (define standard-input ##sys#standard-input) (define (exception-handler ex) (thread-signal! (thread-specific ##sys#current-thread) ex) (continuation-drop #f) ) | > > > > > > > > > > | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | ;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. (require-library srfi-18 ports protobuf) (declare (disable-interrupts)) (module suspension (with-limited-continuation continuation-drop continuation-suspend continuation-resume) (import scheme chicken srfi-18 ports (only protobuf-generic serialize deserialize)) (define error-output ##sys#standard-error) (define standard-output ##sys#standard-output) (define standard-input ##sys#standard-input) (define (exception-handler ex) (thread-signal! (thread-specific ##sys#current-thread) ex) (continuation-drop #f) ) |
︙ | ︙ | |||
73 74 75 76 77 78 79 | (serialize k o) (##sys#call-with-values (lambda () (store (get-output-string o))) continuation-drop) ) ) ) ) ) (define (continuation-resume k . results) (##sys#direct-return (with-input-from-string k deserialize) results) ) | > > | 83 84 85 86 87 88 89 90 91 | (serialize k o) (##sys#call-with-values (lambda () (store (get-output-string o))) continuation-drop) ) ) ) ) ) (define (continuation-resume k . results) (##sys#direct-return (with-input-from-string k deserialize) results) ) ) |
Changes to webgate.scm.
︙ | ︙ | |||
22 23 24 25 26 27 28 | ;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ;; SOFTWARE. (require-library srfi-1 srfi-4 srfi-13 srfi-14 srfi-18 srfi-69 srfi-99 data-structures ports extras lolevel irregex tcp posix | | < < < < < < < < < < < | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | ;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ;; SOFTWARE. (require-library srfi-1 srfi-4 srfi-13 srfi-14 srfi-18 srfi-69 srfi-99 data-structures ports extras lolevel irregex tcp posix suspension cryptlib) (module webgate-utils (write-netstring read-netstring make-at-reader make-at-read-table use-at-read-table uri-encode uri-decode base64-encode base64-decode write-html) |
︙ | ︙ |
Changes to webgate.setup.
1 2 3 4 5 6 7 8 9 10 11 | ;; -*- mode: Scheme; -*- (compile -s -O2 -d1 "webgate.scm" -J) (compile -s -O2 -d1 "at-expr.scm") (cond-expand (enable-static (compile -c -O2 -d1 "webgate.scm" -unit webgate)) (else )) | > > > | | > | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 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 45 46 | ;; -*- mode: Scheme; -*- (compile -s -O2 -d1 "suspension.scm" -J) (compile -s -O2 -d1 "webgate.scm" -J) (compile -s -O2 -d1 "at-expr.scm") (cond-expand (enable-static (compile -c -O2 -d1 "suspension.scm" -unit suspension) (compile -c -O2 -d1 "webgate.scm" -unit webgate)) (else )) (compile -s -O2 -d0 "suspension.import.scm") (compile -s -O2 -d0 "webgate.import.scm") (compile -s -O2 -d0 "webgate-utils.import.scm") (compile -s -O2 -d0 "webgate-core.import.scm") (compile -s -O2 -d0 "webgate-suspend.import.scm") (compile -s -O2 -d0 "webgate-cgi.import.scm") (compile -s -O2 -d0 "webgate-scgi.import.scm") (cond-expand (enable-soup (compile -s -O2 -d0 "webgate-soup.import.scm")) (else )) (install-extension 'webgate `("suspension.so" "webgate.so" "at-expr.so" ,@(cond-expand (enable-static '("suspension.o" "webgate.o")) (else '())) "suspension.import.so" "webgate.import.so" "webgate-utils.import.so" "webgate-core.import.so" "webgate-suspend.import.so" "webgate-cgi.import.so" "webgate-scgi.import.so" ,@(cond-expand (enable-soup |
︙ | ︙ |