func TimeoutAdd(timeout uint, f interface{}, args ...interface{}) (SourceHandle, error) {
	// f must be a func with no parameters.
	rf := reflect.ValueOf(f)
	if rf.Type().Kind() != reflect.Func {
		return 0, errors.New("f is not a function")
	}

	// Create a timeout source func to be added to the main loop context.
	timeoutSrc := C.g_timeout_source_new(C.guint(timeout))
	if timeoutSrc == nil {
		return 0, errNilPtr
	}

	return sourceAttach(timeoutSrc, rf, args...)
}
func TimeoutAdd(timeout uint, f interface{}, args ...interface{}) (SourceHandle, error) {
	
	rf := reflect.ValueOf(f)
	if rf.Type().Kind() != reflect.Func {
		return 0, errors.New("f is not a function")
	}

	
	timeoutSrc := C.g_timeout_source_new(C.guint(timeout))
	if timeoutSrc == nil {
		return 0, errNilPtr
	}

	return sourceAttach(timeoutSrc, rf, args...)
}
func TimeoutAdd ( timeout uint , f interface { } , args ... interface { } ) ( SourceHandle , error ) { // f must be a func with no parameters. rf := reflect . ValueOf ( f ) if rf . Type ( ) . Kind ( ) != reflect . Func { return 0 , errors . New ( " " ) } // Create a timeout source func to be added to the main loop context. timeoutSrc := C . g_timeout_source_new ( C . guint ( timeout ) ) if timeoutSrc == nil { return 0 , errNilPtr } return sourceAttach ( timeoutSrc , rf , args ... ) }
// TimeoutAdd adds an timeout source to the default main event loop
// context.  After running once, the source func will be removed
// from the main event loop, unless f returns a single bool true.
//
// This function will cause a panic when f eventually runs if the
// types of args do not match those of f.
// timeout is in milliseconds
TimeoutAdd adds an timeout source to the default main event loop context . After running once the source func will be removed from the main event loop unless f returns a single bool true . This function will cause a panic when f eventually runs if the types of args do not match those of f . timeout is in milliseconds