Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Why3
why3
Commits
378a2514
Commit
378a2514
authored
Jan 21, 2011
by
François Bobot
Browse files
In the thread why I musn't call do_why_sync :)
parent
0b42a2ce
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/bench/benchrc.ml
View file @
378a2514
...
...
@@ -111,23 +111,21 @@ let read_probs absf map (name,section) =
(* files *)
let
files
=
get_stringl
~
default
:
[]
section
"file"
in
let
gen
env
task
=
let
fwhy
()
=
try
let
read_one
fname
=
let
cin
=
open_in
(
absf
fname
)
in
let
m
=
Env
.
read_channel
?
format
:
format
env
fname
cin
in
close_in
cin
;
let
ths
=
Mnm
.
bindings
m
in
List
.
rev_map
(
fun
(
n
,
th
)
->
((
name
,
fname
,
n
)
,
th
))
ths
in
let
map
(
name
,
th
)
=
name
,
Task
.
split_theory
th
None
task
in
let
fold
acc
(
n
,
l
)
=
List
.
rev_append
(
List
.
rev_map
(
fun
v
->
(
n
,
v
))
l
)
acc
in
files
|>
List
.
map
read_one
|>
list_flatten_rev
try
let
read_one
fname
=
let
cin
=
open_in
(
absf
fname
)
in
let
m
=
Env
.
read_channel
?
format
:
format
env
fname
cin
in
close_in
cin
;
let
ths
=
Mnm
.
bindings
m
in
List
.
rev_map
(
fun
(
n
,
th
)
->
((
name
,
fname
,
n
)
,
th
))
ths
in
let
map
(
name
,
th
)
=
name
,
Task
.
split_theory
th
None
task
in
let
fold
acc
(
n
,
l
)
=
List
.
rev_append
(
List
.
rev_map
(
fun
v
->
(
n
,
v
))
l
)
acc
in
files
|>
List
.
map
read_one
|>
list_flatten_rev
|>
List
.
rev_map
map
|>
List
.
fold_left
fold
[]
with
exn
->
eprintf
"%a@."
Exn_printer
.
exn_printer
exn
;
exit
1
in
Scheduler
.
do_why_sync
fwhy
()
in
with
exn
->
eprintf
"%a@."
Exn_printer
.
exn_printer
exn
;
exit
1
in
Mstr
.
add
name
{
ptask
=
gen
;
ptrans
=
gen_trans
}
map
let
read_bench
absf
mtools
mprobs
map
(
name
,
section
)
=
...
...
src/ide/scheduler.ml
View file @
378a2514
...
...
@@ -347,7 +347,7 @@ let do_why_sync funct argument =
let
c
=
Condition
.
create
()
in
let
r
=
ref
None
in
let
cb
res
=
Mutex
.
lock
m
;
r
:=
Some
res
;
Mutex
.
unlock
m
;
Condition
.
signal
c
in
Mutex
.
lock
m
;
r
:=
Some
res
;
Condition
.
signal
c
;
Mutex
.
unlock
m
in
do_why
~
callback
:
cb
funct
argument
;
Mutex
.
lock
m
;
Condition
.
wait
c
m
;
Mutex
.
lock
m
;
while
!
r
=
None
do
Condition
.
wait
c
m
done
;
Util
.
of_option
!
r
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment