2006-12-28 13:03:34 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								<?xml version="1.0" encoding="utf-8"?>  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< html  xmlns = "http://www.w3.org/1999/xhtml"  xml:lang = "en" >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< head >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< meta  http-equiv = "content-type"  content = "application/xml+xhtml; charset=utf-8"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< title > Logtalk predicate directive: synchronized/1< / title > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< link  rel = "stylesheet"  href = "../../screen.css"  type = "text/css"  media = "screen" / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< link  rel = "stylesheet"  href = "../../print.css"  type = "text/css"  media = "print" / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / head >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< body >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "top-left" > Logtalk reference manual< / div >   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "top-right" > Predicate directive: synchronized/1< / div >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "bottom-left" > < span  class = "page" / > < / div >   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "bottom-right" > < span  class = "page" / > < / div >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "navtop" > < a  href = "../../index.html" > contents< / a >  >  < a  href = "../index.html" > reference manual< / a >  >  < a  href = "../index.html#directives" > directives< / a > < / div >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-06-12 10:39:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								< h2  id = "directives_synchronized1"  class = "codenp" > synchronized/1< / h2 >  
						 
					
						
							
								
									
										
										
										
											2006-12-28 13:03:34 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< h4 > Description< / h4 >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< pre > synchronized(Functor/Arity) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								synchronized(Functor1/Arity1, Functor2/Arity2, ...)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								synchronized([Functor1/Arity1, Functor2/Arity2, ...])
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								synchronized(Functor//Arity)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								synchronized(Functor1//Arity1, Functor2//Arity2, ...)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								synchronized([Functor1//Arity1, Functor2//Arity2, ...])< / pre > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< p >  
						 
					
						
							
								
									
										
										
										
											2007-06-24 13:27:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Declares synchronized predicates and synchronized grammar rule non-terminals. A synchronized predicate (or synchronized non-terminal) is protected by a mutex in order to allow for thread synchronization when proving a call to the predicate (or non-terminal). All predicates declared in the same synchronized directive share the same mutex. In order to use a separate mutex for each predicate (so that they are independently synchronized), a per-predicate synchronized directive must be used.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / p >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< p >  
						 
					
						
							
								
									
										
										
										
											2007-11-06 01:50:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Synchronized predicates are silently compiled as normal predicates when using back-end Prolog compilers that don't support multi-threading programming.
							 
						 
					
						
							
								
									
										
										
										
											2006-12-28 13:03:34 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / p >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< h4 > Template and modes< / h4 >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< pre > synchronized(+predicate_indicator_term) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								synchronized(+non_terminal_indicator_term)< / pre > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< h4 > Examples< / h4 >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< pre > :- synchronized(db_update/1). 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:- synchronized(write_stream/2, read_stream/2).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:- synchronized([add_to_queue/2, remove_from_queue/2]).< / pre > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  class = "footer" >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = "copyright" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< span > Copyright ©  < a  href = "mailto:pmoura@logtalk.org" > Paulo Moura< / a >  —  < a  href = "http://logtalk.org" > Logtalk.org< / a > < / span > < br / > 	
							 
						 
					
						
							
								
									
										
										
										
											2007-01-10 12:46:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< span > Last updated on: January 2, 2007< / span > 
							 
						 
					
						
							
								
									
										
										
										
											2006-12-28 13:03:34 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = "navbottom" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< span > < a  href = "public1.html" > previous< / a >  | < a  href = "../../glossary.html" > glossary< / a >  | < a  href = "uses2.html" > next< / a > < / span > < br / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< span > < a  href = "http://validator.w3.org/check/referer" > XHTML< / a >  + < a  href = "http://jigsaw.w3.org/css-validator/check/referer" > CSS< / a > < / span > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / div >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / body >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / html >