File: cancellation.py

package info (click to toggle)
gnome-python 2.12.4-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 2,804 kB
  • ctags: 813
  • sloc: sh: 8,593; ansic: 7,747; python: 1,811; makefile: 333; xml: 54
file content (29 lines) | stat: -rw-r--r-- 685 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#! /usr/bin/env python
import time
import gnomevfs
import thread
import sys

context = gnomevfs.Context()

def do_something(context):
    print 'Running counter in thread %s' % thread.get_ident()
    c = 0
    while True:
        time.sleep(0.1)
        c += 1
        print c
        if context.check_cancellation():
            print 'Cancelled counter'
            break

def cancel_in_thread(context):
    print 'Calling cancel in thread %s' % thread.get_ident()
    context.cancel()

if __name__ == '__main__':
    thread.start_new_thread(do_something, (context,))
    thread.start_new_thread(cancel_in_thread, (context,))
    time.sleep(1)
    context.cancel()
    time.sleep(1)