Skip to content

Commit c8883c8

Browse files
[FIX] RESTXQ: local locks. #2565
1 parent b937290 commit c8883c8

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

basex-core/src/main/java/org/basex/query/QueryContext.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,10 @@ public LibraryModule parseLibrary(final String query, final String uri) throws Q
261261
public void assign(final StaticFunc func, final Expr... args) throws QueryException {
262262
for(final StaticFunc sf : functions.funcs()) {
263263
if(func.info.equals(sf.info)) {
264-
// disable inlining of called function to ensure explicit locks are considered
265264
if(!sf.anns.contains(Annotation._BASEX_INLINE)) {
266-
sf.anns = sf.anns.attach(new Ann(sf.info, Annotation._BASEX_INLINE, Itr.ZERO));
265+
// explicit lock: disable inlining. otherwise, enforce inlining for large function bodies
266+
final Value value = sf.anns.contains(Annotation._BASEX_LOCK) ? Itr.ZERO : Empty.VALUE;
267+
sf.anns = sf.anns.attach(new Ann(sf.info, Annotation._BASEX_INLINE, value));
267268
}
268269
// create and assign function call
269270
final StaticFuncCall call = new StaticFuncCall(sf.name, args, null, sf.info, true);

0 commit comments

Comments
 (0)