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 | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
72a7ba057e8d0a461e0c8b82b9a0519f |
User & Date: | murphy 2015-05-04 09:15:36 |
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
..
73
74
75
76
77
78
79
|
;; 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) )
................................................................................
(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) )
|
>
>
>
>
>
>
>
>
>
>
>
>
|
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
..
83
84
85
86
87
88
89
90
91
|
;; 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) ) ................................................................................ (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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
;; 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 protobuf cryptlib) (module suspension (with-limited-continuation continuation-drop continuation-suspend continuation-resume) (import scheme chicken srfi-18 ports (only protobuf-generic serialize deserialize)) (include "suspension.scm")) (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) |
| < < < < < < < < < < < |
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 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 |
;; -*- 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 )) (compile -s -O2 -d0 "webgate.import.scm") (compile -s -O2 -d0 "suspension.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 `("webgate.so" "at-expr.so" ,@(cond-expand (enable-static '("webgate.o")) (else '())) "webgate.import.so" "suspension.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 |
> > > < > > | | | | |
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 |