caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* threads
@ 2009-09-08 17:33 ygrek
  2009-09-08 23:20 ` [Caml-list] threads Philippe Wang
  0 siblings, 1 reply; 4+ messages in thread
From: ygrek @ 2009-09-08 17:33 UTC (permalink / raw)
  To: caml-list

[-- Attachment #1: Type: text/plain, Size: 759 bytes --]

Hello,

 let x = Array.make 100 []
 let update i n = x.(i) <- n :: x.(i)
 let read i = x.(i)

 Consider the following scenario: one thread is `update`ing x, another
thread(s) uses only `read`. Is it safe to use these functions without
locking on mutex? 

 I.e. is Array.set atomic? What about updating references (:=) ?

 If I understand correctly these operations require only one cpu
instruction to update one machine word and so should be atomic. Taking
into account "single-cpu affinity" of ocaml program it should be safe
to write such multithreaded code. Is it true?

 Is it safe to assume that ocamlopt won't skip reads/writes to globally
visible memory address using cached value in a register?

-- 
 ygrek
 http://ygrek.org.ua

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread
* Threads
@ 2005-06-10 17:56 Jonathan Bryant
  0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Bryant @ 2005-06-10 17:56 UTC (permalink / raw)
  To: ocaml_beginners, caml-list

I'm confused.  In the documentation on the threads library it says that
the threads implementation is shared time on only a single processor. 
Is that for VM and system threads, or are the POSIX threads able to take
advantage of multiple processors?  I would think they would be able to
because (unless I'm mistaken) they're just wrappers around the C system
calls...

--Jonathan


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-09-10 18:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-08 17:33 threads ygrek
2009-09-08 23:20 ` [Caml-list] threads Philippe Wang
2009-09-10 18:17   ` ygrek
  -- strict thread matches above, loose matches on Subject: below --
2005-06-10 17:56 Threads Jonathan Bryant

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).