www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.dwt - Does org.eclipse.core.jobs works now?

reply yidabu <dyuyan.spam gmail.com> writes:
I run a background thread by Job, the app crashing on runtime exception:

No symbols available from sxs.dll
sxs.dll loaded at 0x75e90000
Unhandled D Exception (tango.core.Exception.IOException
 "<console> :: The handle is invalid.") at KERNEL32.dll (0x7c812a5b)
thread(3356)
->us



the job is do some local IO, but not access to GUI resource.



-- 
yidabu <yidabu.spam gmail.com>
http://www.dsource.org/projects/dwin

D 语言-中文(D Chinese):
http://www.d-programming-language-china.org/
http://bbs.d-programming-language-china.org/
http://dwin.d-programming-language-china.org/
http://scite4d.d-programming-language-china.org/
Apr 12 2009
parent reply Frank Benoit <keinfarbton googlemail.com> writes:
yidabu schrieb:
 I run a background thread by Job, the app crashing on runtime exception:
 
 No symbols available from sxs.dll
 sxs.dll loaded at 0x75e90000
 Unhandled D Exception (tango.core.Exception.IOException
  "<console> :: The handle is invalid.") at KERNEL32.dll (0x7c812a5b)
thread(3356)
 ->us

 
 
 the job is do some local IO, but not access to GUI resource.
 
 
 
I think it was never tested. If you can provide a test case, i try to fix existing problems.
Apr 12 2009
parent reply yidabu <dyuyan.spam gmail.com> writes:
Exception with test case:

3249 Fatal dwt - java\util\HashSet.d 31: implementation missing in file
java\util\HashSet.d line 31
3255 Fatal dwt - java\util\HashSet.d 31: Please create a bug report at
http://www.dsource.org/projects/dwt
3261 Fatal dwt - java\util\HashSet.d 31: exiting ...


the code:

/*******************************************************************************
 * Copyright (c) 2000, 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 * D Port:
 *     Thomas Demmer <t_demmer AT web DOT de>
 *******************************************************************************/
module org.eclipse.swt.snippets.Snippet44;

/*
 * Cursor example snippet: set the hand cursor into a control
 *
 * For a list of all SWT example snippets see
 * http://www.eclipse.org/swt/snippets/
 */
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Cursor;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;

import java.lang.all;

import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.IJobChangeListener;
import tango.io.Stdout;

class MyJob : Job
{
    this(char[] name) {
        super(name);
    }
    
    public IStatus run(IProgressMonitor monitor) {
        Stdout.formatln("doing job");
        return Status.OK_STATUS;
    }        
}


void main (String [] args) {
    Display display = new Display ();
    Cursor cursor = new Cursor (display, SWT.CURSOR_HAND);
    Shell shell = new Shell (display);
    shell.open ();
    Button b = new Button (shell, 0);
    b.setBounds (10, 10, 200, 200);
    b.addListener (SWT.Selection, new class() Listener{
        public void handleEvent (Event e) {
            //b.setCursor (cursor);
            auto job = new MyJob("test");
            job.schedule();
            job.join;
            Stdout.formatln("job done");
        }
    });
    while (!shell.isDisposed ()) {
        if (!display.readAndDispatch ()) display.sleep ();
    }
    cursor.dispose ();
    display.dispose ();
}



-- 
yidabu <yidabu.spam gmail.com>
http://www.dsource.org/projects/dwin/

D 语言-中文(D Chinese):
http://www.d-programming-language-china.org/
http://bbs.d-programming-language-china.org/
http://dwin.d-programming-language-china.org/
http://scite4d.d-programming-language-china.org/
Apr 12 2009
parent reply Frank Benoit <keinfarbton googlemail.com> writes:
yidabu schrieb:
 Exception with test case:
 
 3249 Fatal dwt - java\util\HashSet.d 31: implementation missing in file
java\util\HashSet.d line 31
 3255 Fatal dwt - java\util\HashSet.d 31: Please create a bug report at
http://www.dsource.org/projects/dwt
 3261 Fatal dwt - java\util\HashSet.d 31: exiting ...
 
 
 the code:
 
I did some fixes
Apr 13 2009
next sibling parent reply yidabu <dyuyan.spam gmail.com> writes:
On Mon, 13 Apr 2009 13:58:46 +0200
Frank Benoit <keinfarbton googlemail.com> wrote:

 yidabu schrieb:
 Exception with test case:
 
 3249 Fatal dwt - java\util\HashSet.d 31: implementation missing in file
java\util\HashSet.d line 31
 3255 Fatal dwt - java\util\HashSet.d 31: Please create a bug report at
http://www.dsource.org/projects/dwt
 3261 Fatal dwt - java\util\HashSet.d 31: exiting ...
 
 
 the code:
 
I did some fixes
no changes found -- yidabu <yidabu.spam gmail.com> http://www.dsource.org/projects/dwin/ D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/
Apr 13 2009
parent Frank Benoit <keinfarbton googlemail.com> writes:
yidabu schrieb:
 On Mon, 13 Apr 2009 13:58:46 +0200
 Frank Benoit <keinfarbton googlemail.com> wrote:
 
 yidabu schrieb:
 Exception with test case:

 3249 Fatal dwt - java\util\HashSet.d 31: implementation missing in file
java\util\HashSet.d line 31
 3255 Fatal dwt - java\util\HashSet.d 31: Please create a bug report at
http://www.dsource.org/projects/dwt
 3261 Fatal dwt - java\util\HashSet.d 31: exiting ...


 the code:
I did some fixes
no changes found
hm, I forgot to upload. :/
Apr 13 2009
prev sibling parent yidabu <dyuyan.spam gmail.com> writes:
On Mon, 13 Apr 2009 13:58:46 +0200
Frank Benoit <keinfarbton googlemail.com> wrote:

 yidabu schrieb:
 Exception with test case:
 
 3249 Fatal dwt - java\util\HashSet.d 31: implementation missing in file
java\util\HashSet.d line 31
 3255 Fatal dwt - java\util\HashSet.d 31: Please create a bug report at
http://www.dsource.org/projects/dwt
 3261 Fatal dwt - java\util\HashSet.d 31: exiting ...
 
 
 the code:
 
I did some fixes
Click on the button, the Job windows like this: http://www.javaeye.com/upload/picture/pic/20475/90879eeb-bee8-3177-9ed5-f56fe1519fae.jpg is not shown. the test case: /******************************************************************************* * Copyright (c) 2000, 2004 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * D Port: * Thomas Demmer <t_demmer AT web DOT de> *******************************************************************************/ module org.eclipse.swt.snippets.Snippet44; /* * Cursor example snippet: set the hand cursor into a control * * For a list of all SWT example snippets see * http://www.eclipse.org/swt/snippets/ */ import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import java.lang.all; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.core.runtime.jobs.JobChangeAdapter; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.IJobChangeListener; import org.eclipse.core.runtime.jobs.IJobChangeEvent; import tango.io.Stdout; import tango.text.convert.Format; class MyJob : Job { this(char[] name) { super(name); } public IStatus run(IProgressMonitor monitor) { monitor.beginTask("test job", 50); for(int i; i < 50; i++) { monitor.subTask( Format("job {}", i) ); Stdout.formatln("job {}", i); monitor.worked(i); if (monitor.isCanceled()) return Status.CANCEL_STATUS; getThread.sleep(1); //Stdout.formatln("doing job"); } monitor.done(); return Status.OK_STATUS; } } void main (String [] args) { Display display = new Display (); Cursor cursor = new Cursor (display, SWT.CURSOR_HAND); Shell shell = new Shell (display); shell.open (); Button b = new Button (shell, 0); b.setBounds (10, 10, 200, 200); b.addListener (SWT.Selection, new class() Listener{ public void handleEvent (Event e) { //b.setCursor (cursor); auto job = new MyJob("test"); job.addJobChangeListener(new class JobChangeAdapter { public void done(IJobChangeEvent event) { if (event.getResult().isOK()) Stdout.formatln("Job completed successfully"); else Stdout.formatln("Job did not complete successfully"); } }); job.setUser(true); job.schedule(); job.join; } }); while (!shell.isDisposed ()) { if (!display.readAndDispatch ()) display.sleep (); } cursor.dispose (); display.dispose (); } -- yidabu <yidabu.spam gmail.com> http://www.dsource.org/projects/dwin/ D 语言-中文(D Chinese): http://www.d-programming-language-china.org/ http://bbs.d-programming-language-china.org/ http://dwin.d-programming-language-china.org/ http://scite4d.d-programming-language-china.org/
Apr 14 2009