Terminates all pending work associated with the context and renders all data owned by the context invalid.
| 
                    cl_int clTerminateContextKHR
                ( | cl_context  context ) | 
It is the responsibility of the application to release all objects associated with the context being terminated.
When a context is terminated:
                The execution status of enqueued commands will be 
                CL_TERMINATED_KHR. Event 
                objects can be queried using 
                clGetEventInfo. 
                Event callbacks can be registered and 
                registered event callbacks will be called with 
                event_command_exec_status set to 
                CL_TERMINATED_KHR. 
                clWaitForEvents 
                will return as immediately for commands 
                associated with event objects specified in 
                event_list. The status of user events can be set. 
                Event objects can be retained and released. 
                clGetEventProfilingInfo  
                returns 
                CL_PROFILING_INFO_NOT_AVAILABLE.
            
The context is considered to be terminated. A callback function registered when the context was created will be called. Only queries, retain and release operations can be performed on the context. All other APIs that use a context as an argument will return CL_CONTEXT_TERMINATED_KHR.
The contents of the memory regions of the memory objects is undefined. Queries, registering a destructor callback, retain and release operations can be performed on the memory objects.
                Once a context has been terminated, all OpenCL API 
                calls that create objects or enqueue 
                commands will return 
                CL_CONTEXT_TERMINATED_KHR. 
                APIs that release OpenCL 
                objects will continue to operate as though 
                clTerminateContextKHR was not called.
            
The behavior of callbacks will remain unchanged, and will report appropriate error, if executing after termination of context. This behavior is similar to enqueued commands, after the command queue has become invalid.
An implementation that supports this extension must be able to terminate commands currently executing on devices or queued across all command-queues associated with the context that is being terminated. The implementation cannot implement this extension by waiting for currently executing (or queued) commands to finish execution on devices associated with this context (i.e. doing a clFinish).
            In Table 4.5, (see 
            clCreateContext) 
            CL_CONTEXT_TERMINATE_KHR 
            can be specified in the context properties only if all devices
            associated with the context support the ability 
            to support context termination (i.e. 
            CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR 
            is set for
            CL_DEVICE_TERMINATE_CAPABILITY_KHR). 
            Otherwise, context creation fails with error 
            code of CL_INVALID_PROPERTY.
        
          clTerminateContextKHR returns CL_SUCCESS 
            if the function is executed successfully.
            Otherwise, it returns one of the following errors:
        
context is not a valid OpenCL context.
            context has already been terminated.
            context was not created with 
                CL_CONTEXT_TERMNATE_KHR 
                set to CL_TRUE.
             Copyright © 2007-2013 The Khronos Group Inc. 
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.
Copyright © 2007-2013 The Khronos Group Inc. 
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.