← Back to team overview

kicad-developers team mailing list archive

Re: DRC Abort Button


Dick H. a écrit :

There is an abort button on the DRC dialog. I don't think it can ever
be functional because the event dispatching thread within KICAD is the
one used to do the DRC check, so how would it ever be able to get the
button click?

The only way I see this working is to somehow poll the event queue
(don't know of wxWidgets allows this) within the DRC tests, or to do
the DRC tests on a different thread.

wxWidgets allows this by calling wxYield().
in Drc() a periodic call to wxYield() is made and the event queue is proceded. the static bool AbortDrc is set to TRUE by the event function, and is tested after a call to wxYield().

This is a dangerous way because any event can be proceded and not only the button event..

Neither of these is worth the work in my opinion. Therefore I would
like to remove this button, since it appears to me to be
non-functional by necessity. Do you have any objections?


In fact this button works, but if we close the Drc frame while a drc calculation is in progress (after a call to wxYield()) pcbnew can crashes because the dialog frame is closed and destroyed, but Drc() is running and uses it ...

This is noticeable only with very large designes (I tested this with a 4000 pads and 14000 track segments).

So, because computers are faster and faster this button is now not very usefull and even dangerous, and can be removed.

Jean-Pierre CHARRAS
Maître de conférences
Directeur d'études 2ieme année.
Génie Electrique et Informatique Industrielle 2
Institut Universitaire de Technologie 1 de Grenoble
BP 67, 38402 St Martin d'Heres Cedex

Recherche :
Grenoble Image Parole Signal Automatique (GIPSA - INPG)
46, Avenue Félix Viallet
38031 Grenoble Cedex

Follow ups