difftreelog
doc: clarify string pooling error
in: master
3 files changed
crates/jrsonnet-evaluator/src/typed/conversions.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/typed/conversions.rs
+++ b/crates/jrsonnet-evaluator/src/typed/conversions.rs
@@ -5,23 +5,23 @@
use jrsonnet_types::{ComplexValType, ValType};
use crate::{
+ ObjValue, ObjValueBuilder, Result, ResultExt, Thunk, Val,
arr::{ArrValue, BytesArray},
bail,
function::FuncVal,
typed::CheckType,
val::{IndexableVal, NumValue, StrValue, ThunkMapper},
- ObjValue, ObjValueBuilder, Result, ResultExt, Thunk, Val,
};
#[doc(hidden)]
pub mod __typed_macro_prelude {
pub use ::jrsonnet_evaluator::{
+ IStr, ObjValue, ObjValueBuilder, State, Val,
error::{ErrorKind, Result as JrResult},
typed::{
CheckType, ComplexValType, FromUntyped, IntoUntyped, ParseTypedObj, SerializeTypedObj,
Typed,
},
- IStr, ObjValue, ObjValueBuilder, State, Val,
};
}
pub use jrsonnet_macros::{FromUntyped, IntoUntyped, Typed};
crates/jrsonnet-interner/src/lib.rsdiffbeforeafterboth--- a/crates/jrsonnet-interner/src/lib.rs
+++ b/crates/jrsonnet-interner/src/lib.rs
@@ -175,10 +175,9 @@
// destructor is called, but instead re-initialize the TLS with the empty pool.
// Allow non-pooled Drop in this case.
// https://github.com/CertainLach/jrsonnet/issues/98#issuecomment-1591624016
- //
- // However, if pool is not empty, most likely this is issue #113, and then I don't
- // have any explainations for now.
- assert!(pool.is_empty(), "received an unpooled string not during the program termination, please write any info regarding this crash to https://github.com/CertainLach/jrsonnet/issues/113, thanks!");
+ // Another cause might be that you have improperly used jrsonnet in multi-threaded environment:
+ // https://github.com/CertainLach/jrsonnet/issues/113
+ debug_assert!(pool.is_empty(), "if you have landed here - you most likely did something naughty with multi-threading. jrsonnet string pooling uses thread_local pool");
}
});
}
crates/jrsonnet-rowan-parser/src/generated/nodes.rsdiffbeforeafterboth334#![allow(non_snake_case, clippy::match_like_matches_macro)]4#![allow(non_snake_case, clippy::match_like_matches_macro)]5use crate::{5use crate::{6 ast::{support, AstChildren, AstNode, AstToken},7 SyntaxKind::{self, *},6 SyntaxKind::{self, *},8 SyntaxNode, SyntaxToken, T,7 SyntaxNode, SyntaxToken, T,8 ast::{AstChildren, AstNode, AstToken, support},9};9};101011#[derive(Debug, Clone, PartialEq, Eq, Hash)]11#[derive(Debug, Clone, PartialEq, Eq, Hash)]