Finalizer
This commit is contained in:
@@ -852,31 +852,6 @@
|
|||||||
(define (rkt-webview-finalizer rkt-wv-store)
|
(define (rkt-webview-finalizer rkt-wv-store)
|
||||||
(rkt_webview_exit_done (if (eq? webview-exit-done #f) 0 1)))
|
(rkt_webview_exit_done (if (eq? webview-exit-done #f) 0 1)))
|
||||||
|
|
||||||
#|
|
|
||||||
(define (rkt-webview-finalizer rkt-wv-store close-windows message)
|
|
||||||
(unless finalizer-executed
|
|
||||||
(dbg-webview "rkt-webview-finalizer active")
|
|
||||||
(when close-windows
|
|
||||||
(let ((open-windows (hash->list rkt-wv-store)))
|
|
||||||
(for-each (λ (kv)
|
|
||||||
(let ((win (car kv))
|
|
||||||
(handle (cdr kv)))
|
|
||||||
(rkt-webview-close handle)))
|
|
||||||
open-windows)))
|
|
||||||
(dbg-webview "Clearing event callback function in C libary")
|
|
||||||
(rkt_webview_register_evt_callback #f)
|
|
||||||
(dbg-webview "Sending guard-stop message to event callback")
|
|
||||||
(event-callback evt-guard-stop)
|
|
||||||
(dbg-webview "Cleaning up FFI library")
|
|
||||||
(rkt_webview_cleanup)
|
|
||||||
(unless (eq? message #f) (error message))
|
|
||||||
(dbg-webview "Stopping event processing thread (kill-thread)")
|
|
||||||
(stop-event-processing)
|
|
||||||
(dbg-webview "Finalizer done")
|
|
||||||
(set! finalizer-executed #t)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|#
|
|
||||||
|
|
||||||
(define (rkt-webview-exit . args)
|
(define (rkt-webview-exit . args)
|
||||||
(let ((close-windows (if (null? args) #t (car args)))
|
(let ((close-windows (if (null? args) #t (car args)))
|
||||||
@@ -921,6 +896,9 @@
|
|||||||
; Maybe get in error state
|
; Maybe get in error state
|
||||||
(unless (eq? message #f)
|
(unless (eq? message #f)
|
||||||
(error message))
|
(error message))
|
||||||
|
|
||||||
|
; Exit done
|
||||||
|
(set! webview-exit-done #t)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -939,10 +917,6 @@
|
|||||||
(define custodian-finalizer
|
(define custodian-finalizer
|
||||||
(register-custodian-shutdown rkt-wv-store rkt-webview-finalizer
|
(register-custodian-shutdown rkt-wv-store rkt-webview-finalizer
|
||||||
#:at-exit? #t))
|
#:at-exit? #t))
|
||||||
; (λ (rkt-wv-store)
|
|
||||||
; (rkt-webview-finalizer rkt-wv-store #t #f))
|
|
||||||
; #:at-exit? #t)
|
|
||||||
; )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user