spikard 0.7.3 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5bc4f26c2d521b21576d22fd3dc4286e9afe149040b09e414dde433b20023fa5
4
- data.tar.gz: b845aff402b4cb3baedd5a3de8934ee55abedb4bea0cbe4f2255ab793c4ad035
3
+ metadata.gz: 8aaa69147b9559e656b5ed4ef831e2359cf1118f3aa4dd48bcddacf3ca3f7017
4
+ data.tar.gz: 938381140bd2aa352d323c8a67d0e90301d98baafbde407377c8871a4bcc4702
5
5
  SHA512:
6
- metadata.gz: '09f5556c7ba5cefa13eac0083ef1745f23ed2fd6d3b5f80099457a080527c98fd6eb805adde014d01cdfa59d1b1f1c1c8892bde3356287365007d4e2c234666d'
7
- data.tar.gz: e47b125a9940033b1cedc99ce29ae9ed1f7a478ca367921fd3e81db8f5a1d73b5f231f3d3b0da4f7d7436c582a8cb0ce7554918252edfbe61c48e98f7521cf86
6
+ metadata.gz: c6328843f0532852b9f232ffc39c7a7e0ea2b86e1bc253348275e7426a8155a9741b4a4abcd7d62b3ea4461acca55ecb2587af9d667ce1f0e3b8902bed0c78e6
7
+ data.tar.gz: 421d73af951b6a4e2574962fb2c0a3b3dbed7854aafbdefec842afab821ad389cebb130c3a8a63b6bf02c62270ab23af0cc184c2dc1198650b05a4ddf7119a9d
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "spikard-rb-ext"
3
- version = "0.7.3"
3
+ version = "0.7.4"
4
4
  edition = "2024"
5
5
  license = "MIT"
6
6
  authors = ["Na'aman Hirschfeld <nhirschfeld@gmail.com>"]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spikard
4
- VERSION = '0.7.3'
4
+ VERSION = '0.7.4'
5
5
  end
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "spikard-bindings-shared"
3
- version = "0.7.3"
3
+ version = "0.7.4"
4
4
  edition = "2024"
5
5
  authors = ["Na'aman Hirschfeld <nhirschfeld@gmail.com>"]
6
6
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "spikard-core"
3
- version = "0.7.3"
3
+ version = "0.7.4"
4
4
  edition = "2024"
5
5
  authors = ["Na'aman Hirschfeld <nhirschfeld@gmail.com>"]
6
6
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "spikard-http"
3
- version = "0.7.3"
3
+ version = "0.7.4"
4
4
  edition = "2024"
5
5
  authors = ["Na'aman Hirschfeld <nhirschfeld@gmail.com>"]
6
6
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "spikard-rb"
3
- version = "0.7.3"
3
+ version = "0.7.4"
4
4
  edition = "2024"
5
5
  authors = ["Na'aman Hirschfeld <nhirschfeld@gmail.com>"]
6
6
  license = "MIT"
@@ -54,6 +54,7 @@ use std::cell::RefCell;
54
54
  use std::collections::HashMap;
55
55
  use std::io;
56
56
  use std::mem;
57
+ use std::panic::AssertUnwindSafe;
57
58
  use std::pin::Pin;
58
59
  use std::sync::Arc;
59
60
  use std::time::Duration;
@@ -61,6 +62,7 @@ use url::Url;
61
62
 
62
63
  use crate::config::extract_server_config;
63
64
  use crate::conversion::{extract_files, problem_to_json};
65
+ use crate::gvl::with_gvl;
64
66
  use crate::integration::build_dependency_container;
65
67
  use crate::metadata::{build_route_metadata, ruby_value_to_json};
66
68
  use crate::request::NativeRequest;
@@ -875,6 +877,20 @@ impl RubyHandler {
875
877
  }
876
878
 
877
879
  fn handle(&self, request_data: RequestData) -> HandlerResult {
880
+ with_gvl(|| {
881
+ let result =
882
+ std::panic::catch_unwind(AssertUnwindSafe(|| self.handle_inner(request_data)));
883
+ match result {
884
+ Ok(res) => res,
885
+ Err(_) => Err((
886
+ StatusCode::INTERNAL_SERVER_ERROR,
887
+ "Unexpected panic while executing Ruby handler".to_string(),
888
+ )),
889
+ }
890
+ })
891
+ }
892
+
893
+ fn handle_inner(&self, request_data: RequestData) -> HandlerResult {
878
894
  let validated_params = request_data.validated_params.clone();
879
895
 
880
896
  let ruby = Ruby::get().map_err(|_| {
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "spikard-rb-macros"
3
- version = "0.7.3"
3
+ version = "0.7.4"
4
4
  edition = "2024"
5
5
  license = "MIT"
6
6
  publish = false
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spikard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Na'aman Hirschfeld