      function buildConversationListItem (data) {
        let html = ''

        html +=
          '<li ng-click="loadConversation(\'' +
          data._id +
          '\');" data-conversation-id="' +
          data._id +
          '" data-updatedAt="' +
          data.updatedAt +
          '">'
        html += '<div class="profile-pic">'
        let imageUrl = 'defaultProfile.jpg'
        if (data.partner.image) {
          imageUrl = data.partner.image
        }
        html +=
          '<img src="/uploads/users/' +
          imageUrl +
          '" class="uk-border-circle profileImage" data-userid="' +
          data.partner._id +
          '" />'
        html += '<span class="user-online uk-border-circle" data-user-status-id="' + data.partner._id + '"></span>'
        html += '</div>'
        html += '<div class="convo-info">'
        html += '<span class="message-from">' + data.partner.fullname + '</span>'
        html += '<span class="message-date">' + moment(data.updatedAt).calendar() + '</span>'
        html += '<span class="message-subject">' + data.recentMessage + '</span>'
        html += '</div>'
        html += '</li>'

        return html
      }
The software utilizes multiple threads or processes to allow temporary access to a shared resource that can only be exclusive to one process at a time, but it does not properly synchronize these actions, which might cause simultaneous accesses of this resource by multiple threads or processes.