| 
					
				 | 
			
			
				@@ -52,12 +52,17 @@ starpu_codelet work = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static int x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static starpu_data_handle x_handle, f_handle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void callback(void *arg) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	starpu_insert_task(&work, STARPU_W, starpu_data_get_sub_data(f_handle, 1, x), 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	starpu_data_release(x_handle); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 int main(int argc, char **argv) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int i, ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	float *f; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	starpu_data_handle x_handle, f_handle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	starpu_init(NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -81,11 +86,15 @@ int main(int argc, char **argv) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if (ret == -ENODEV) goto enodev; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	/* And submit the corresponding task */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#ifdef __GCC__ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	STARPU_DATA_ACQUIRE_CB( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			x_handle, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			STARPU_R, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			starpu_insert_task(&work, STARPU_W, starpu_data_get_sub_data(f_handle, 1, x), 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	starpu_data_acquire_cb(x_handle, STARPU_W, callback, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	starpu_task_wait_for_all(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	starpu_data_unpartition(f_handle, 0); 
			 |