Changeset 4450
- Timestamp:
- 08/26/08 12:51:33 (3 months ago)
- Location:
- trunk
- Files:
-
- 2 modified
-
compiler/logtalk.pl (modified) (4 diffs)
-
RELEASE_NOTES.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/compiler/logtalk.pl
r4447 r4450 13351 13351 '$lgt_mt_threaded_call'(Goal, Queue) :- 13352 13352 thread_self(Id), 13353 call(Goal), 13354 thread_send_message(Queue, '$lgt_result'(Id, true(Goal))). 13353 ( Goal -> 13354 thread_send_message(Queue, '$lgt_result'(Id, true(Goal))) 13355 ; thread_send_message(Queue, '$lgt_result'(Id, false)) 13356 ). 13355 13357 13356 13358 … … 13364 13366 13365 13367 '$lgt_mt_threaded_exit_handler'(Id, Queue) :- 13366 thread_property(Id, status(Status)), 13367 ( Status == true -> 13368 true 13369 ; catch(thread_send_message(Queue, '$lgt_result'(Id, Status)), _, thread_detach(Id)) 13370 ). 13371 13372 13373 13374 % '$lgt_mt_threaded_and_exit'(+callable, +list(thread_identifier), +list) 13368 thread_property(Id, status(exception(Error))), 13369 catch(thread_send_message(Queue, '$lgt_result'(Id, exception(Error))), _, thread_detach(Id)). 13370 13371 13372 13373 % '$lgt_mt_threaded_and_exit'(+list(thread_identifier), +list) 13375 13374 % 13376 13375 % retrieves the result of proving a conjunction of goals using a threaded/1 predicate call … … 13442 13441 13443 13442 13444 % '$lgt_mt_threaded_or_exit'(+ callable, +list(thread_identifier), +list)13443 % '$lgt_mt_threaded_or_exit'(+list(thread_identifier), +list) 13445 13444 % 13446 13445 % retrieves the result of proving a disjunction of goals using a threaded/1 predicate … … 13548 13547 13549 13548 '$lgt_mt_threaded_call_abort'([Id| Ids]) :- 13550 catch( '$lgt_mt_abort_thread'(Id), _, true),13549 catch(thread_signal(Id, '$lgt_mt_abort_thread'(Id)), _, true), 13551 13550 '$lgt_mt_threaded_call_abort'(Ids). 13552 13551 13553 13552 13554 13553 '$lgt_mt_abort_thread'(Id) :- 13555 ( thread_peek_message( Id,'$lgt_master') ->13554 ( thread_peek_message('$lgt_master') -> 13556 13555 thread_send_message(Id, '$lgt_result'(_, terminate)) 13557 ; thr ead_signal(Id, throw('$lgt_terminated'))13556 ; throw('$lgt_terminated') 13558 13557 ). 13559 13558 -
trunk/RELEASE_NOTES.txt
r4449 r4450 45 45 when using SWI-Prolog as the back-end compiler by making the lookup caches 46 46 thread local. 47 48 Small performance improvement to the threaded/1 built-in multi-threading 49 predicate. 47 50 48 51 Added a multifile/1 directive for the logtalk_library_path/2 predicate.
