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 Changed 15 years ago by Silvan Scherrer

Status: newaccepted
Type: defecttask

comment:2 Changed 15 years ago by Silvan Scherrer

Summary: port of all basic classesPort of all basic classes

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

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

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

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 Changed 15 years ago by Dmitry A. Kuminov

Making some progress: moc and rcc already build.

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

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 Changed 15 years ago by Dmitry A. Kuminov

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 Changed 15 years ago by Dmitry A. Kuminov

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 Changed 15 years ago by Dmitry A. Kuminov

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 Changed 15 years ago by Dmitry A. Kuminov

Resolution: fixed
Status: acceptedclosed

I think that this milestone can be considered as done.

comment:11 Changed 15 years ago by Silvan Scherrer

ok gona close it :)

Note: See TracTickets for help on using tickets.