Opened 15 years ago

Closed 15 years ago

Last modified 15 years ago

#2 closed task (fixed)

Port all important basic classes from src/corelib

Reported by: Silvan Scherrer Owned by: Silvan Scherrer
Priority: major Milestone: QtCore Beta
Component: QtCore Version: 4.5.1 Beta 1
Severity: Keywords:
Cc:

Description (last modified by Dmitry A. Kuminov)

Tracker for general discussion about the milestone.

Change History (11)

comment:1 by Silvan Scherrer, 15 years ago

Status: newaccepted
Type: defecttask

comment:2 by Silvan Scherrer, 15 years ago

Summary: port of all basic classesPort of all basic classes

comment:3 by Dmitry A. Kuminov, 15 years ago

Description: modified (diff)
Summary: Port of all basic classesPort all important basic classes from src/corelib

comment:4 by Dmitry A. Kuminov, 15 years ago

Before I can go further with individual classes, I need to make some common work like taking OS/2 platform into account in global headers (where not already done), in .pro and .pri files and make sure a dummy QtCore.dll can be built.

I'm working on that now.

comment:5 by Dmitry A. Kuminov, 15 years ago

Making some progress: moc and rcc already build.

comment:6 by Dmitry A. Kuminov, 15 years ago

Well, QtCore4.dll {{almost}} builds now (almost = some unimplemented key classes are still disabled so weakld reports about many unresolved externals and the link stage fails). Moving back to individual tasks.

comment:7 by Dmitry A. Kuminov, 15 years ago

Ok, after r77 I finally got the first version of QtCore4.dll compiled and built. I'll do some more tests tomorrow and I expect to close the milestone after that.

comment:8 by Dmitry A. Kuminov, 15 years ago

The examples/thread/semaphores example seems to build work at first sight, but there are some problems with atomic operations (used for mutex and condition variable implementations) where they are actually not atomic. Investigating.

comment:9 by Dmitry A. Kuminov, 15 years ago

Okay, it turned out that blindly copying the QMutex stuff from Qt3 was incorrect: as said above, Qt4 uses atomic operations for mutexes therefore the only native primitive necessary for QMutex is an event semaphore, not a native mutex as one may think (using "lightweight" atomic ops for QMutex makes locking/unlocking much faster in cases when several intensive worker threads fight for the mutex; the native primitive is not involved at all in this case). Fixed in r82.

The examples/thread/semaphores example works now, as well as waitconditions, Whoo! I think it's enough for the first beta version of QtCore4.

comment:10 by Dmitry A. Kuminov, 15 years ago

Resolution: fixed
Status: acceptedclosed

I think that this milestone can be considered as done.

comment:11 by Silvan Scherrer, 15 years ago

ok gona close it :)

Note: See TracTickets for help on using tickets.