summaryrefslogtreecommitdiffstats
path: root/src/dbus/qdbusunixfiledescriptor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dbus/qdbusunixfiledescriptor.cpp')
-rw-r--r--src/dbus/qdbusunixfiledescriptor.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/dbus/qdbusunixfiledescriptor.cpp b/src/dbus/qdbusunixfiledescriptor.cpp
index 86d2b3c92e..0ee29fc20f 100644
--- a/src/dbus/qdbusunixfiledescriptor.cpp
+++ b/src/dbus/qdbusunixfiledescriptor.cpp
@@ -194,7 +194,7 @@ QDBusUnixFileDescriptor::~QDBusUnixFileDescriptor()
*/
bool QDBusUnixFileDescriptor::isValid() const
{
- return d ? d->fd != -1 : false;
+ return d ? d->fd.load() != -1 : false;
}
/*!
@@ -212,7 +212,7 @@ bool QDBusUnixFileDescriptor::isValid() const
*/
int QDBusUnixFileDescriptor::fileDescriptor() const
{
- return d ? d->fd.operator int() : -1;
+ return d ? d->fd.load() : -1;
}
// actual implementation
@@ -269,11 +269,12 @@ void QDBusUnixFileDescriptor::giveFileDescriptor(int fileDescriptor)
else
d = new QDBusUnixFileDescriptorPrivate;
- if (d->fd != -1)
- qt_safe_close(d->fd);
+ const int fdl = d->fd.load();
+ if (fdl != -1)
+ qt_safe_close(fdl);
if (fileDescriptor != -1)
- d->fd = fileDescriptor;
+ d->fd.store(fileDescriptor);
}
/*!
@@ -294,8 +295,9 @@ int QDBusUnixFileDescriptor::takeFileDescriptor()
QDBusUnixFileDescriptorPrivate::~QDBusUnixFileDescriptorPrivate()
{
- if (fd != -1)
- qt_safe_close(fd);
+ const int fdl = fd.load();
+ if (fdl != -1)
+ qt_safe_close(fdl);
}
#else