func IdleAdd(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 an idle source func to be added to the main loop context.
	idleSrc := C.g_idle_source_new()
	if idleSrc == nil {
		return 0, errNilPtr
	}
	return sourceAttach(idleSrc, rf, args...)
}
func IdleAdd(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")
	}

	
	idleSrc := C.g_idle_source_new()
	if idleSrc == nil {
		return 0, errNilPtr
	}
	return sourceAttach(idleSrc, rf, args...)
}
func IdleAdd ( 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 an idle source func to be added to the main loop context. idleSrc := C . g_idle_source_new ( ) if idleSrc == nil { return 0 , errNilPtr } return sourceAttach ( idleSrc , rf , args ... ) }
// IdleAdd adds an idle 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.
IdleAdd adds an idle 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 .